vim 笔记

vim 配置文件

终端输入 vim --version 或打开 vim 后在命令模式下输入 :version可查看 vim 的配置文件路径:

1
2
3
4
5
6
  system vimrc file: "/etc/vim/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/share/vim"
配置文件说明:

system vimrc file:系统的配置文件,系统管理员可以为每个用户的 vim 配置使用这个 vimrc 文件。
user vimrc file:用户自定义的配置文件。
2nd user vimrc file:通过引入了一个新的目录 .vim 目录,使用户可以将 vim 的所有文件(插件和配置文件等)都放在此目录下,以后如果需要将 vim 的配置拷贝到另一个系统的话,拷贝~/.vim/目录就可以了,比较方便。
user exrc file:vi 的配置文件。
defaults file:vim 默认的配置文件,当以上的 vim 配置文件都找不到时,vim 就会使用这个文件作为配置文件。

vim 鼠标右键无法粘贴

vim 使用右键变成 (insert) VISUA的状态,没法粘贴。
解决办法:在配置文件中将 set mouse=a修改为 set mouse=r,重启 vim 即可。

1
2
3
4
5
6
7
8
if has('mouse')
if &term =~ 'xterm'
- set mouse=a
+ set mouse=r
else
set mouse=nvi
endif
endif

vim 粘贴时自动缩进

默认情况下 vim 粘贴时会自动缩进,导致代码完全变形。
解决办法:

  1. 输入命令 :set paste进入 paste 模式粘贴:set nopaste退出 paste 模式。
  2. 在 配置文件里添加如下代码即可:
1
2
3
4
5
6
7
8
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction