SpaceVim+NeoVim

我觉得:对于程序编辑器,需求驱动。找到自己想要的需求,看如何实现,不必太花哨而迷失

主要需求参考https://github.com/yangyangwithgnu/use_vim_as_ide#3 作者:老亨  来源:CSDN 

安装spacevim:自己百度

安装neovim:参考https://blog.csdn.net/henryhu712/article/details/80458753 

首先,如果没有安装PPA的话,先用下面的命令来安装:

sudo apt-get install software-properties-common
如果已经安装,用上面的命令也没有问题,会提示已经已有最新版本,不会重复安装。

PPA - Personal Package Archive,个人包档案

然后用下面的命令来安装 Neovim

sudo apt-add-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim

这样,vim和nvim的配置文件等都软链接到~/.SpaceVim文件夹中。我们可以该文件夹拷贝复制,就可以使得当前的vim配置适用于另一台机器和备份等

安装了spcavim后,编辑器本身就较为友好来。新的插件安装在/.SpaceVim/plugged/

安装插件就是对对应的github地址中拷贝,复制在该目录中

我们可以根据自己的需求 修改源代码xxx.Vim

3.1 主题风格

通过spaceVim修改 默认的就很不错

https://spacevim.org/cn/documentation/#%E9%A2%9C%E8%89%B2%E4%B8%BB%E9%A2%98

 字体缩放

最好是ctrl+鼠标中键盘缩放字体:目前不知道怎么实现

终端中启动vim nvim,只能通过设置终端的字体来改变:<ctrl+shift>+  放大字体   <ctrl>-缩小字体

3  营造专注氛围

F11全屏

" 总是显示状态栏
set laststatus=2
" 显示光标当前位置
set ruler
" 开启行号显示
set number
" 高亮显示当前行/列
set cursorline
set cursorcolumn
" 高亮显示搜索结果
set hlsearch
" 禁止光标闪烁
set gcr=a:block-blinkon0
" 禁止显示滚动条
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R
" 禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T

4 代码分析

语法高亮:nvim spaceVim自带

代码自动缩进:nvim spaceVim基本算是自带

代码折叠

" 基于缩进或语法进行代码折叠
"set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable

操作:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠。

在源文件和头文件间切换:sw

安装插件vim-fswitch(https://github.com/derekwyatt/vim-fswitch

然后加入:

" *.cpp 和 *.h 间切换
nmap <silent> <Leader>sw :FSHere<cr>

其中Leaer是前缀键\

加书签:

安装vim-plug插件管理插件:https://github.com/junegunn/vim-plug

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

然后nvim后 :PluginIsnatall

书签管理插件vim-signature:https://github.com/kshenoy/vim-signature

最常见用法:m+大小写字母:设置书签

 m, 快捷键,自动帮你选定下一个可用独立书签名

`书签:跳转至一开始设置的书签

]`  [`跳转到前后的书签

m/  显示所有的书签

编辑:

4.6 标识符列表

 4.7查找

在当前文件中查找:

/字符    和  查找光标所在字符*

使用n N向下向上搜索

在整个工程中查找:

安装插件:

ctrlsf.vim(https://github.com/dyng/ctrlsf.vim)

ack.vim(https://github.com/mileszs/ack.vim

安装Ubunt的ack程序:

sudo apt install ack-grep

设置快捷键

nnoremap <Leader>sp :CtrlSF<CR>

用法:

在想要查找的单词上\sp,其中sp是指search in project。查找结果将以子窗口在左侧呈现,p键则在右侧显示,Enter则表示找到哦啊了想要的,q退出

快速替换和精准替换

5 代码开发

注释一定要方便:

又space vim提供(comment line)

spc c l comment/uncomment current line 注释/取消注释当前行,结合.可以实现多行的注释和取消注释

 编程模板:

需要两个插件,一个提供模板补全功能,一个提供模板,可以自定义模板

https://github.com/honza/vim-snippets

https://github.com/SirVer/ultisnips

使用:

在进行模板补全时,你是先键入模板名(如,if),接着键入补全快捷键(默认 <tab>),然后 UltiSnips 根据你键入的模板名在代码模板文件中搜索匹配的“模板名-模板”,找到对应模板后,将模板在光标当前位置展开 。${1}、${2} 是 <tab> 跳转的先后顺序,即tab跳到下一补全位置,shift+tab跳到上一补全位置(这个还未实现)

5.4 由接口快速生成实现框架

下载插件:

https://github.com/derekwyatt/vim-protodef

然后进入插件所在目录,修改插件的源码(把快捷键PP修改为快捷键GD,把快捷键PN修改为GN,\GD用来生成带命名空间的Generate definetion,\GN用来生成不带命名空间的):

这样,在源文件中便可以\GN  \GD来生成定义

5.5 库信息参考

在vim配置文件中打开man:

" 启用:Man命令查看各类man信息
source $VIMRUNTIME/ftplugin/man.vim

这样就可以使用:Man 3  xxx来查看xx的帮助文档

c++的man帮助文档可能需要单独装(可以通过man std::cout)查看系统是否安装了c++的帮助文档

安装方法:https://github.com/jeaye/stdman

在线参考,C++ 推荐 http://www.cplusplus.com/reference/http://en.cppreference.com/w/Cppreference:Archives ,前者范例多、后者更新勤;UNIX 推荐 http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.htmlhttp://man7.org/linux/man-pages/dir_all_alphabetic.html

6.工程管理

必要功能:

打开工程目录关闭工程目录 F3

展开工程目录等 h l

在新的标签页打开文件 l

进入工程目录或上一目录 h l

自动匹配后打开当前工程目录下的某个文件(即能够搜索当前目录下的所有文件):使用:find 命令

F3是打开关闭文件树的功能,

6.2 多文档编辑

spaceVim 的支持也很好

同一界面下的多个窗口:切换TAB   关闭:q  切换到具体哪一个:spac+序号

TAB操作:当只有1个TAB时,标签页显示当前打开的buffers  当打开多个TAB时,标签显示各个TAB

标签栏上TAB的切换:鼠标点击 或者\+序号 

vim中buffers的操作很奇怪 ,每个打开的文件在vim中都有一个buffer,但是却很难可视化等

5.vim能quickfix快速定义编译错误

https://blog.easwy.com/archives/advanced-vim-skills-quickfix-mode/

6 实时的语法分析

尽可能保持vim的编辑和移动按键,来适用不同的编辑器

4.vim中最常用的原生命令

移动:

0 $    对应行首行为插入模式I A(insert  append)

e单词的结尾end  ea结尾处插入

b单词开头begin   bi开头出插入

w(word)  下一单词的开头

f 和 t  F和T

/搜索 *搜索光标下单词+nN前后

二合一:

caw  ciw 删除整个单词后进入插入模式

r/R 文本替换

猜你喜欢

转载自blog.csdn.net/qq_32425195/article/details/86614427