为什么我的Vim以替换模式启动?
我可能不小心改变了一些设置,但现在我想不出是什么 行为:为什么我的Vim以替换模式启动?,vim,configuration,Vim,Configuration,我可能不小心改变了一些设置,但现在我想不出是什么 行为: 每当我编辑现有文件时,Vim都会以替换(R)模式启动。从本周开始,这是新的 无论何时执行vim nonExistantFile.txt,vim都会在正常模式下启动 到目前为止的诊断步骤: /etc/vimrc没有任何相关内容,特别是不包含startreplace /home/.vimrc没有任何相关内容,特别是不包含startreplace alias不显示任何与vim相关的 平台信息: Vim版本7.3.1314 Windows
- 每当我编辑现有文件时,Vim都会以替换(
)模式启动。从本周开始,这是新的R
- 无论何时执行
,vim都会在正常模式下启动vim nonExistantFile.txt
/etc/vimrc
没有任何相关内容,特别是不包含startreplace
/home/.vimrc
没有任何相关内容,特别是不包含startreplace
alias
不显示任何与vim相关的
- Vim版本7.3.1314
- Windows 7 64位
- 32位Cygwin和Vim二进制
- 不久前(在此之前),我将CentOS 6.4机器上的
复制到Cygwin/etc/vimrc
/etc/vimrc
- 我最近编辑了一些二进制文件
- 我已经将问题缩小到这个
片段/etc/vimrc
- 奇怪的是,注释掉这两个命令中的任何一个都可以解决问题
“仅在使用自动命令支持编译时执行此部分
如果有(“自动MD”)
"
编辑文件时,始终跳转到最后一个光标位置
autocmd BufReadPost*
\如果line(“\”)>0&&line(“\”)检查~/.exrc文件的初始设置,则必须有一个标志,用于在启动时将vi设置为替换模式
干杯!我在/etc/vimrc
中添加了一些换行符并交换了两个命令,这似乎是导致问题的原因…这似乎解决了问题。我不知道为什么。下面的内容似乎为我解决了这个问题。我认为有一些自动命令代码干扰了光标位置恢复,所以请清除以前的自动命令(如下所示)为我修复了该问题:
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWinEnter * call ResCur()
augroup END
函数!ResCur()
如果行(“\”)I在my.vimrc
中映射了nnoremap:nohlsearch
,这导致了这种行为
将此映射到
为我解决了问题。只是想一想,centos新线可能与win不兼容。你能抓到另一个vimrc吗?试着删除你的.viminfo
文件。我曾经遇到过类似的问题,它解决了。我的理论是,.viminfo
包含一些在启动时执行的恶意命令。@KevinDTimm您可能会something@KevinDTimm不,我在文件中使用了unix2dos
,这是个好主意,但我没有~/.exrc
也没有/etc/exrc
哇,谢谢!由于某种奇怪的原因,这导致了上面的替换模式问题和箭头键键入A/B/C/D。我在这里提出了这个问题,这正是我遇到的问题!你怎么知道是它引起的?我把我的vimrc一分为二,发现这改变了行为。很奇怪,我花了很长时间才找到。但你可以相信,这让我快发疯了。
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWinEnter * call ResCur()
augroup END