Vim 全局配置 / 设置鼠标模式
新搞的 Linux (Debian) 上的 vim 一右击粘贴就变成 insert (Visual) 模式,上网查了一下,要 set mouse=,但是每次设置太麻烦了,另外我也想改一下全局配色。
定位全局配置文件
看到有篇博客说是在 /usr/share/vim/share/... 下有个 vimrc,可能不同系统或版本有差异,总的来说先去 /usr/share/vim 找,我这一下就找到了:/usr/share/vim/vimrc,看到文件末尾有这么几行:
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
看这样就知道是要去改 /etc/vim/vimrc.local。这里分析一下为什么要加个 vimrc.local,而不是直接修改这个文件,这是因为 vim 每次更新之后有可能会修改自己的默认配置,如果直接修改的话在更新的时候就会出现冲突,而 local 的意思正是本地配置,与上游 vim 配置无关。
所以最后在 /etc/vim/vimrc.local 加上
set mouse=
colorscheme slate
补
实测在那个位置添加 set mouse= 并不会起效。
参考 https://www.jianshu.com/p/29744bae5f3d 发现鼠标的行为在 vimrc.local 之后加载,所以要么在 /etc/vim/vimrc.local 中加上 let skip_defaults_vim=1,要么在我要用的 root 用户主目录下建 .vimrc,但是这样会导致 root 用户没有代码高亮。
其实也好弄,在 ~/.vimrc 加一句 source 就行了:
source $VIMRUNTIME/defaults.vim
set mouse=""
补2
感觉鼠标模式还是挺有用的,所以最好还是弄个快捷键出来快速切换一下鼠标和非鼠标模式
在 /etc/vim/vimrc.local 中加上这段
map <F9> <ESC>:call Mouse()<CR>
function Mouse()
if has('mouse')
if &mouse==""
:set mouse=a
:echo "mouse enabled"
else
:set mouse=""
:echo "mouse disabled"
endif
else
:echo "no mouse"
endif
endfunction
这里面 map 命令将 F9 按键绑定到了 <ESC>:call Mouse()<CR>上,其中 ESC 是为了应对已经进入 Visual 模式的情况,先退出,然后再执行函数;CR 则是换行,应用命令。
函数里 &mouse 表示获取 vim 中 mouse 选项的值。
浙公网安备 33010602011771号