我可能不小心改变了一些设置,但现在我无法弄清楚它是什么。
行为:
R
)模式启动。这是本周的新内容。vim nonExistantFile.txt
时,Vim都会以正常模式启动到目前为止诊断的步骤:
/etc/vimrc
没有任何相关内容,特别是不包含startreplace
/home/<myuser>/.vimrc
没有任何相关内容,特别是不包含startreplace
alias
未显示任何与vim
相关的内容平台信息:
其他可能的相关信息:
/etc/vimrc
从我的CentOS 6.4机器复制到Cygwin /etc/vimrc
我很难过,我想不出别的事情可以尝试。
更新
/etc/vimrc
代码段Vimrc代码段(注意:这确实有unix行结尾):
" Only do this part when compiled with support for autocommands
if has("autocmd")
"<snip>
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
" don't write swapfile on most commonly used directories for NFS mounts or USB sticks
autocmd BufNewFile,BufReadPre /media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
"<snip>
endif
答案 0 :(得分:6)
我在nnoremap <ESC> :nohlsearch<CR>
中映射了.vimrc
,这导致了这种行为。
将此映射到<Enter>
为我解决了问题。
答案 1 :(得分:0)
答案 2 :(得分:0)
我添加了一些新行,并在/etc/vimrc
中交换了两个似乎导致问题的命令......这似乎解决了这个问题。我不明白为什么。
答案 3 :(得分:0)
以下似乎为我解决了这个问题。我认为有一些自动命令代码干扰了光标位置恢复,所以清除以前的自动命令如下修复了我的问题:
function! ResCur()
if line("'\"") <= line("$")
normal! g`"
return 1
endif
endfunction
augroup resCur
autocmd!
autocmd BufWinEnter * call ResCur()
augroup END
http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session