1

我在使用 vim undo 时遇到了很多麻烦。我在我的 ~/.vimrc 中设置了“set noundofile”,并附上了我工作目录的屏幕截图,所有的 .un~ 文件到处都是非常烦人的。这里有点帮助谢谢!

目录的屏幕截图

下面是我的 .vimrc

set nocompatible
exec pathogen#infect()
filetype plugin indent on
filetype plugin on
"syntax enable
syntax on
set background=light
set noundofile
let g:solarized_termtrans = 1
colorscheme solarized
set number
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
vnoremap < <gv
vnoremap > >gv
set runtimepath^=~/.vim/bundle/ctrlp.vim
autocmd FileType ruby set ft=ruby.rails
autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
set nobackup      " no backup files
set nowritebackup " only in case you don't want a backup file while editing
set noswapfile    " no swap files
set clipboard=unnamed " use Mac clipboard for yank/paste/etc.
" expand %% to file dir
cnoremap %% <C-R>=expand('%:h').'/'<cr> 

set autoindent    " always set autoindenting on
set copyindent    " copy the previous indentation on autoindenting
set shiftround    " use multiple of shiftwidth when indenting with '<' and '>'
set smarttab      " insert tabs on the start of a line according to
                  "    shiftwidth, not tabstop
set ts=2 sts=2 sw=2 expandtab "set two spaces by default

autocmd Filetype javascript setlocal et ts=2 sts=2 sw=2
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

autocmd Filetype html setlocal et ts=2 sts=2 sw=2
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

autocmd Filetype css setlocal et ts=2 sts=2 sw=2
autocmd FileType css set omnifunc=csscomplete#CompleteCSS


au BufRead,BufNewFile *.hamlc set ft=haml

" Vim-pasta Settings
let g:pasta_disabled_filetypes = ['python', 'coffee', 'yaml']


" Indent Guide Settings
autocmd FileType html,css,ruby,eruby,javascript,php,xml,haml call indent_guides#enable()
set mouse=a
imap <C-l> <Space>=><Space>
"Make hashrocket with control-l
nmap <silent> <Leader>q :NERDTreeToggle<CR>
4

3 回答 3

7

我个人喜欢持久撤消功能。但是,您可以通过设置更改撤消文件的位置undodir

set undofile
set undodir=$HOME/.vim/vimundo

如果你这样做,你必须首先通过运行确保$HOME/.vim/vimundo存在

mkdir -p $HOME/.vim/vimundo

(您仍然必须删除旧的,但至少它们不会再弄乱工作目录了)


如果需要,您也可以对备份文件执行相同操作。( :h backupdir)


关于 vimrc 的其他说明。

exec pathogen#infect()
...
set runtimepath^=~/.vim/bundle/ctrlp.vim

set runtimepath^=~/.vim/bundle/ctrlp.vim不应该需要,因为病原体应该已经将它附加到运行时路径。

正如@romainl 所说的那样filetype plugin on是多余的。

于 2013-08-27T15:45:30.627 回答
3

来自:help 'undofile'

boolean (default off)
[…]
When 'undofile' is turned off the undo file is NOT deleted.

所以……</p>

  1. 你不需要,set noundofile因为它默认是关闭的,

  2. 您需要自己删除所有这些文件。

于 2013-08-27T15:13:13.580 回答
0

请注意,撤销文件功能是在 Vim 7.3 版中实现的。如果您使用的是早期版本并在 .vimrc 中包含set undofile或,您将收到如下错误:set noundofile

E518: Unknown option: noundofile

可以在这里找到检查 Vim 版本以防止这些错误的想法。

于 2019-01-08T17:27:31.373 回答