最开始用的是notepadd++,后来听说其作者是个台独分子,因此坚决不用。那就用vim吧反正在linux上也用,学习一遍windows、linux上都可以用。
后来看Linux内核代码必须要用到vim,为什么?因为windows下文件名相同大小写不同不能同时存在一个文件夹中,比如main.c和MAIN.C不能同时存在一个文件夹中。Linux内核和一些C/C++库有很多这样的文件。因此必须在Linux操作系统阅读这些库源码。
而我的工作电脑是Windows,Linux的装在虚拟机中,为了减少内存使用提高运行速度就将图形界面删掉了,因此source insight和vscode都不能用了只能用vim。其实vim配合cscope和ctags挺好用的,没有图形界面的拖累即便在虚拟机中速度也很快,比物理机上的source insight还快。
后来发现用vim写markdown是真方便。
学习vim配置花了很长时间,逐步摸索适合自己的vim配置。熟练了以后就离不开了。下面是我的vim配置,linux下放在~/.vimrc文件中,windows下放在vim的安装目录/Vim/_vimrc文件中。
将光标定位到标题那一行按下‘数字+;‘就能插入#号,比如'3;'就会在当前行开始处插入‘### ’。另外按‘]’可以跳到下一个标题处,同理‘[’跳到上一个标题处。
autocmd Filetype markdown nmap
autocmd Filetype markdown nmap
autocmd Filetype markdown nmap
autocmd Filetype markdown nmap
按下‘gvd‘在markdown将选中的代码中用c包含
autocmd Filetype markdown vmap gvd s```vim
有时候要快速定位的文件中的某一行只记得大概位置,文件很长不想一页一页翻,gg和G只能定位到第一行和最后一行。也不想用‘数字键+gg’的形式,文件只有几十行还好要是几千行上万行要按4次数字键2次g,很不方便。因此可以这样配置:
noremap 1
noremap 2
noremap 3
noremap 4
noremap 5
noremap 6
noremap 7
noremap 8
noremap 9
按下‘数字+空格’可以定位到文件的百分之几处,比如文件有2000行按下‘5+空格’就能定位到文件中的1000行处,不管文件多长只需两次按键就能定位到大概位置。
选中文字按下‘gvx’加粗,按下‘gvf’加颜色,按下‘gvc’将图片移至网页中部。
" 设置gvx键将选中的文字加**号
autocmd Filetype markdown vmap gvx s****
" 设置gvf键将选中的文字加上标签
autocmd Filetype markdown vmap gvf s
" 设置gvc键将选中的文字加上
autocmd Filetype markdown vmap gvc s
" 设置gv`键将选中的文字加上``标签
autocmd Filetype markdown vmap gv` s``
每次在当前行定位列非常不方便,按键‘gm’只能定位到屏幕行中央,干脆设置按下‘数字+t’可以定位到屏幕行的百分比处,比如按下‘5+t’将跳到屏幕行中间位置。
function! LOCA_COL(count)
let aaa = v:count
:exe 'normal' 'g^'
let scol_gs = virtcol('.')
:exe 'normal' 'g$'
let scol_ge = virtcol('.')
:exe 'normal' (scol_gs + float2nr(round((scol_ge - scol_gs + 1) * min([9, aaa]) / 10.0))) . '|'
endfunction
nnoremap
$和^这两个符号的按键很不方便,因此重新设置:
noremap gl g$
noremap gh g^
每次想要换一行时按o都要按Esc退出来,干脆重新映射快捷键。
:nnoremap
:nnoremap
" 按ctl+l在当前行下方添加一行,按ctl+h在当前行上方添加一行
nmap
nmap
插件,很多人喜欢用置Vundle管理vim插件,其实根本不需要,vim8.0后就自带插件管理器了。到~/.vim/pack/dist/start目录(没有就创建一个)中执行git clone 插件github地址就可以安装插件,vim启动时会自动加载插件。
在~/.vim/pack/dist/start目录中安装插件:
" markdow浏览
git clone https://github.com/iamcco/markdown-preview.nvim.git
" 写markdow时,粘贴图片会用到
git clone https://github.com/img-paste-devs/img-paste.vim.git
" 代码补全,比较难安装
git clone https://github.com/ycm-core/YouCompleteMe.git
" 多光标编辑,类似vscode中ctrl+d多处选中
git clone https://github.com/terryma/vim-multiple-cursors.git
" 注释用的
git clone https://github.com/tpope/vim-commentary.git
" 树形目录显示
git clone https://github.com/preservim/nerdtree.git
" 底部状态栏
git clone https://github.com/vim-airline/vim-airline.git
当然在windows下还可以设置ctrl+c、ctrl+v等可以复制粘贴到其他窗口。
" 全选
nnoremap
" 在视图和选择模式下按ctrl+c,复制选中的内容
vnoremap
" 设置在常规模式下按下ctrl+v,粘贴"+p中的内容
noremap
imap
" 剪切
vmap
" 保存ctrl+s
nmap
vmap
imap