我的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
这一定是个问题,因为我正在重新映射转义键。没想到我很尴尬。
我仍然想知道这在我所看到的行为中可能如何体现,因此欢迎任何解释。
答案 0 :(得分:1)
Linux终端使用ANSI转义序列(即,以<Esc>
开头的字符串)将特殊键发送到Vim,并作为应用程序查询其功能的通信协议的一部分。您的映射会干扰这一点,从而导致这些“奇怪”的行为。
因此,不映射<Esc>
。使用另一个密钥。这个问题在GVIM中不太明显,但是我也不推荐在那儿使用。如果您绝对需要<Esc>
的映射,请仅在Vim完全启动后通过:autocmd VimEnter * nnoremap <Esc> ...