事情是这样的,之前linux下vim用习惯了...然后就给自己win下vscode也装了个vim插件,用下来还是感觉不顺手,并且处理太多文本时有明显卡顿,于是乎自己配了下win版的vim。
不过好像也并不是从零开始的...初始基础版的.vimrc有copy他们版本,在此基础上进行了各类配置。
先放个最终效果,以lammps in文件为例:
vim安装
Windows下Gvim的安装与配置_gvim windows-CSDN博客
配置Vundle
注意将copy的linux下的.vimrc中vundle的路径修改为win的。
Vundle安装插件
在.vimrc中配置:
cpp
" 设置运行时路径包括Vundle和初始化
set rtp+=D:\Vim\Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required 让Vundle管理Vundle
Plugin 'itchyny/lightline.vim'
call vundle#end()
在3,6行中间添加需要安装的插件。
之后命令行:
cpp
$vim
:PlugInstall 命令会安装在你的.vimrc文件中列出来的所有插件。
:PluginInstall <plugin-name> 还可以只安装某一个特定的插件,只要传递其名称。
:BundleList -列举列表(也就是.vimrc)中配置的所有插件
:BundleInstall -安装列表中的全部插件
:BundleInstall! -更新列表中的全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件缓存
:BundleClean -清除列表中没有的插件
:BundleClean! -清除列表中没有的插件
安装nedtree
修改字体
在vimrc中添加以下内容。win下的配置格式和linux是不一样的。
cpp
set guifont=Consolas:h14:cANSI
字典补全
可以使用 set dictionary来指定含有一个或者多个单词的字典文件。
在这个例子中我们在 nvim-config 目录中新建一个 spell.txt 文件,我们在里面写入如下内容
cpp
require
return
request
然后在配置文件中然后使用 set dictionary=./spell.txt。
配置自动补全括号
在.vimrc中加入以下内容。
cpp
function! AutoPair(open, close)
let line = getline('.')
if col('.') > strlen(line) || line[col('.') - 1] == ' '
return a:open.a:close."\<ESC>i"
else
return a:open
endif
endf
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
inoremap ( <c-r>=AutoPair('(', ')')<CR>
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap { <c-r>=AutoPair('{', '}')<CR>
inoremap } <c-r>=ClosePair('}')<CR>
inoremap [ <c-r>=AutoPair('[', ']')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
自动换行
cpp
au FileType * setlocal wrap
主题设置
从github找到需要的主题颜色后下载到vim的color文件夹中
配置添加以下内容
cpp
set background=dark
colorscheme hardhacker
对.svi后缀进行高亮
vim ~/.vimrc 添加如下行
cpp
au BufNewFile,BufRead *.svi set filetype=sv
配置UVM高亮
vim中UVM高亮配置https://download.csdn.net/download/weixin_51982763/88758668?spm=1001.2014.3001.5503
将压缩包内容放入对应位置
然后修改filetype.vim
高亮方式改为verilog_sytemverilog。
自动保存和加载折叠信息
您的折叠信息都被保留下来了。然而,您需要手动运行 mkview 和 loadview。我知道,终有一日,我会忘记运行 mkview 就关闭文件了,接着便会丢失所有折叠信息。能不能自动实现这个呢?
当然能!要在关闭 .txt 文件时自动运行 mkview,以及在打开 .txt 文件后自动运行 loadview,将下列内容添加至您的 vimrc:
autocmd BufWinLeave *.txt mkview
autocmd BufWinEnter *.txt silent loadview
mkview可能会报错没有对应文件夹,创建一下就好了。
配置状态栏
好用的状态栏插件:
https://github.com/itchyny/lightline.vimhttps://github.com/itchyny/lightline.vim
状态栏在Vim底部命令行区域之上,它可以显示和当前打开文件有关的信息,通过'statusline'选项可以定制用户需要显示的内容:
laststatus'选项用于控制状态栏的显示行为:
- 0 - 不显示状态栏
- 1 - 多于一个窗口的时候显示状态栏
- 2 - 总是显示状态栏
在选择每个选项时,要在前面加上'%',请看下面的例子:
cpp
:set statusline=[%f]%r%w%m%=%l/%L,%c\ %p%%
:set laststatus=2
修改快捷键(映射)
cpp
nmap vt :NERDTree<CR> //将vt映射为nedtree:
nmap ws :sp<CR> //水平分隔
nmap wv :vs<CR> //纵向分隔
nmap wc :q!<CR> //关闭并不保存
附个人配置完成的.vimrc
个人vim配置https://download.csdn.net/download/weixin_51982763/88758676