Vim

Vim 自動命令創建奇怪的文件

  • June 5, 2013

我剛剛在 virtualbox 上設置了 slackware 14。正如一個人所做的那樣,我立即創建/更改了我的文件.bashrc,更重要的是,我的.vimrc文件。

為了避免編寫大量程式碼,我通常添加類似

au BufWinEnter * w:m1=matchadd('ErrorMsg','\%>100v.\+', -1)
if version >= 702
   au BufWinLeave * call clearmatches()
endif

我已經使用這些設置有一段時間了,只是這一次,每當我在 vim 中打開一個文件時,就會創建一個奇怪的文件,並:m1=matchadd('ErrorMsg','\%>100v.\+', -1)以它的名字命名。

我已經將我的.vimrc文件簡化為基礎知識,我相信這與這個奇怪的東西沒有任何關係(vim-7.3.645-x86_64-1):

set nocompatible
set ai
set nu
set ruler
set hlsearch
set hidden
set showcmd
set cursorline
set confirm
syntax on
color evening
au BufWinEnter * w:m1=matchadd('ErrorMsg','\%>100v.\+', -1)
if version >= 702
   au BufWinLeave * call clearmatches()
endif

任何想法是什麼導致了這種行為,以及如何解決它?

這是意料之中的;autocmd 執行Ex 命令 w:m1=matchadd('ErrorMsg','\%>100v.\+', -1)w是 的縮寫形式write,後面的內容被解釋為文件名。

我猜 a:let失去了,因為這樣命令才有意義:let w:m1=...定義一個視窗局部變數m1並將matchadd()呼叫結果分配給它。


autocmd 似乎突出顯示第 100 列以外的所有字元。請注意,在最近的 Vim 7.3 版本中,您可以使用該'colorcolumn'功能:

:set colorcolumn=101

引用自:https://unix.stackexchange.com/questions/78297