vim的一些高级配置

时间:2022-12-13 17:06:07

今天有幸看到一篇博文,有一些vim的高级配置

在linux或者unix下面的.vimrc文件中,在其中可以添加如下片段,可以实现解释上面你说的那些高级用法

" Ctrl + K 插入模式下光标向上移动
imap <c-k> <Up>

" Ctrl + J 插入模式下光标向下移动
imap <c-j> <Down>

" Ctrl + H 插入模式下光标向左移动
imap <c-h> <Left>

" Ctrl + L 插入模式下光标向右移动
imap <c-l> <Right>

上面这4项很实用

关于其他的一些配置,可以查看如下链接:

http://www.oschina.net/code/snippet_574132_13357?p=2#comments

关于高级配置,需要懂一些shell脚本编写的知识,我不懂,由于不用linux系统了,习惯于windows系统下使用gvim,下面对我的gvim下的_vimrc文件内容配置对应的如下:

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction " zyf自己定义的两个命令
nmap <cr> li<cr><ESC>k$hl
nmap <c-o> o<ESC>k " 用空格键来开关折叠
nnoremap <space> @=((foldclosed(line('.')) < ) ? 'zc' : 'zo')<CR> " 当文件在外部被修改,自动更新该文件
"set autoread " 常规模式下输入 cS 清除行尾空格
nmap cS :%s/\s\+$//g<cr>:noh<cr> " 常规模式下输入 cM 清除行尾 ^M 符号
nmap cM :%s/\r$//g<cr>:noh<cr> set ignorecase "搜索模式里忽略大小写
set nobackup "不生成备份文件,也就是~
set smartcase "如果搜索模式包含大写字符,不使用 'ignorecase' 选项,只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用
" set noincsearch "在输入要搜索的文字时,取消实时匹配 " Ctrl + K 插入模式下光标向上移动
imap <c-k> <Up> " Ctrl + J 插入模式下光标向下移动
imap <c-j> <Down> " Ctrl + H 插入模式下光标向左移动
imap <c-h> <Left> " Ctrl + L 插入模式下光标向右移动
imap <c-l> <Right> " 每行超过80个的字符用下划线标示

上面使一些vim中自定义的一些快捷键,这样在操作的时候会更加的方便