【发布时间】:2019-01-25 17:47:30
【问题描述】:
我的 Vim (8.0) 已开始以命令模式启动,值为 :2R。
我将我的 vimrc 保存在一个 git repo 中,所以我检查了以前的提交,直到我发现奇怪的行为停止了。最后一个有效提交和第一个有错误的提交之间的 git diff 很简单:
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
这种变化究竟会如何导致这种行为?
相关:Strange symbol in vim command line after start 表明这是一个配置错误的 TERM 环境变量,但我当然没有手动更改它,比较两次提交的 env 的输出显示没有区别。
编辑:我追查到这条线
nnoremap <C-[> <C-o>
这一定是个问题,因为我正在重新映射转义键。我很尴尬,我没有考虑到这一点。
我仍然想知道这如何可能体现在我所看到的行为中,因此欢迎任何解释。
【问题讨论】:
-
为什么不尝试进行一些更改,直到确定导致问题的特定行?
-
@jeremysprofile 你是对的,我应该这样做。鉴于此,我已经更新了我的问题。
-
基本上是vim uses the escape key during startup,所以它没有正确执行它的启动命令。
-
:2R的事情只有在 tmux 之外才会发生在我身上。但是,mapping <esc> causes bizarre arrow behavior.
标签: vim configuration