我觉得:对于程序编辑器,需求驱动。找到自己想要的需求,看如何实现,不必太花哨而迷失
主要需求参考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
通过spaceVim修改 默认的就很不错
https://spacevim.org/cn/documentation/#%E9%A2%9C%E8%89%B2%E4%B8%BB%E9%A2%98
字体缩放
最好是ctrl+鼠标中键盘缩放字体:目前不知道怎么实现
终端中启动vim nvim,只能通过设置终端的字体来改变:
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
语法高亮: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 sw :FSHere
其中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.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 sp :CtrlSF
用法:
在想要查找的单词上\sp,其中sp是指search in project。查找结果将以子窗口在左侧呈现,p键则在右侧显示,Enter则表示找到哦啊了想要的,q退出
快速替换和精准替换
注释一定要方便:
又space vim提供(comment line)
spc c l |
comment/uncomment current line 注释/取消注释当前行,结合.可以实现多行的注释和取消注释 |
编程模板:
需要两个插件,一个提供模板补全功能,一个提供模板,可以自定义模板
https://github.com/honza/vim-snippets
https://github.com/SirVer/ultisnips
使用:
在进行模板补全时,你是先键入模板名(如,if),接着键入补全快捷键(默认
下载插件:
https://github.com/derekwyatt/vim-protodef
然后进入插件所在目录,修改插件的源码(把快捷键PP修改为快捷键GD,把快捷键PN修改为GN,\GD用来生成带命名空间的Generate definetion,\GN用来生成不带命名空间的):
这样,在源文件中便可以\GN \GD来生成定义
在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.html 、http://man7.org/linux/man-pages/dir_all_alphabetic.html
6.工程管理
必要功能:
打开工程目录关闭工程目录 F3
展开工程目录等 h l
在新的标签页打开文件 l
进入工程目录或上一目录 h l
自动匹配后打开当前工程目录下的某个文件(即能够搜索当前目录下的所有文件):使用:find 命令
F3是打开关闭文件树的功能,
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 文本替换
其他必要的需求:
定义跳转,在光标当前单词上的直接跳转 在下方命令行指定单词的直接跳转YCM+Clang是必须的
自己的经验:vim一段时间不用就会忘记,所以vim的常用操作需要一开始每周看看 背背 操作一下 等到后期彻底熟练了就会好很多了