奇怪的行为:Vim以命令行模式启动

时间:2019-01-25 17:47:30

标签: vim configuration

我的Vim(8.0)已开始以命令模式(值为*** Keywords *** Custom Setup Log &{SUITE METADATA}[prettyMetaName] level=WARN *** Settings *** Suite Setup Custom Setup )启动。

我将vimrc保留在git repo中,所以我签出了以前的提交,直到达到怪异行为停止的程度。最后一个起作用的提交和第一个有错误的提交之间的git diff很简单:

:2R

这种变化到底将如何导致这种行为?

相关:Strange symbol in vim command line after start暗示它是一个错误配置的diff --git a/.vim/common.vim b/.vim/common.vim index a5b2443..bb209c3 100644 --- a/.vim/common.vim +++ b/.vim/common.vim @@ -13,27 +13,28 @@ noremap ( zz nnoremap Y y$ " Find my way around inside text objects -map [[ "_yaB -map ]] "_yaB% -map [b "_yab -map ]b "_yab% -map [d "_ya] -map ]d "_ya]% +noremap [[ "_yaB +noremap ]] "_yaB% +noremap [b "_yab +noremap ]b "_yab% +noremap [d "_ya] +noremap ]d "_ya]% -map [s ( -map }s ) +noremap [s ( +noremap ]s ) " Various C-macros -nmap <C-n> nzz -nmap <C-a> W50i <Esc>B50ldwBj -nmap <C-u> ElldwBj -nmap <C-f> }?function<Enter>{jVN/{<Enter>% +nnoremap <C-n> nzz +nnoremap <C-a> W50i <Esc>B50ldwBj +nnoremap <C-u> ElldwBj +nnoremap <C-f> }?function<Enter>{jVN/{<Enter>% nnoremap <C-c> mwA;<Esc>`w nnoremap <C-o> mwO<Esc>0Dj`w nnoremap <C-.> mwo<Esc>0Dk`w " Give it back -nnoremap <C-p> <C-o> +nnoremap <C-[> <C-o> +nnoremap <C-]> <C-p> " for search highlighting set hlsearch 环境变量,但是我当然没有手动更改它,并且比较两次提交的TERM的输出没有区别。 / p>

编辑:我将其追溯到该行

env

这一定是个问题,因为我正在重新映射转义键。没想到我很尴尬。

我仍然想知道这在我所看到的行为中可能如何体现,因此欢迎任何解释。

1 个答案:

答案 0 :(得分:1)

Linux终端使用ANSI转义序列(即,以<Esc>开头的字符串)将特殊键发送到Vim,并作为应用程序查询其功能的通信协议的一部分。您的映射会干扰这一点,从而导致这些“奇怪”的行为。

因此,不映射<Esc> 。使用另一个密钥。这个问题在GVIM中不太明显,但是我也不推荐在那儿使用。如果您绝对需要<Esc>的映射,请仅在Vim完全启动后通过:autocmd VimEnter * nnoremap <Esc> ...

进行定义。