Have VIM add a final new line on save
我希望VIM在保存文本文件时添加最后一行。 奇怪的是,搜索它我只找到有关如何禁用此行为的说明,但我明确地想要它。
这是我的VIM安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | $ vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 18 2016 01:00:23) MacOS X (unix) version Included patches: 1-1525 Compiled by Homebrew Huge version without GUI. Features included (+) or not (-): +acl +farsi +mouse_netterm +tag_binary +arabic +file_in_path +mouse_sgr +tag_old_static +autocmd +find_in_path -mouse_sysmouse -tag_any_white -balloon_eval +float +mouse_urxvt -tcl -browse +folding +mouse_xterm +terminfo ++builtin_terms -footer +multi_byte +termresponse +byte_offset +fork() +multi_lang +textobjects +channel -gettext -mzscheme +title +cindent -hangul_input +netbeans_intg -toolbar -clientserver +iconv +packages +user_commands +clipboard +insert_expand +path_extra +vertsplit +cmdline_compl +job +perl +virtualedit +cmdline_hist +jumplist +persistent_undo +visual +cmdline_info +keymap +postscript +visualextra +comments +langmap +printer +viminfo +conceal +libcall +profile +vreplace +cryptv +linebreak +python +wildignore +cscope +lispindent -python3 +wildmenu +cursorbind +listcmds +quickfix +windows +cursorshape +localmap +reltime +writebackup +dialog_con -lua +rightleft -X11 +diff +menu +ruby -xfontset +digraphs +mksession +scrollbind -xim -dnd +modify_fname +signs -xsmp -ebcdic +mouse +smartindent -xterm_clipboard +emacs_tags -mouseshape +startuptime -xterm_save +eval +mouse_dec +statusline -xpm +ex_extra -mouse_gpm -sun_workshop +extra_search -mouse_jsbterm +syntax system vimrc file:"$VIM/vimrc" user vimrc file:"$HOME/.vimrc" 2nd user vimrc file:"~/.vim/vimrc" user exrc file:"$HOME/.exrc" fall-back for $VIM:"/usr/local/share/vim" Compilation: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -Os -w -pipe -march=native -mmacosx-version-min=10.11 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 Linking: /usr/bin/clang -L. -L/usr/local/lib -L/usr/local/lib -Wl,-headerpad_max_install_names -o vim -lm -lncurses -liconv -framework Cocoa -fstack-protector -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -lperl -framework Python -lruby.2.0.0 -lobjc |
我的.vimrc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | autocmd BufWritePost .vimrc source % set nocompatible filetype off " Set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'altercation/vim-colors-solarized' Plugin 'ctrlpvim/ctrlp.vim' Plugin 'vim-airline/vim-airline' call vundle#end() filetype plugin indent on syntax on colorscheme solarized set backspace=2 set textwidth=80 set colorcolumn=+1 set laststatus=2 set tabstop=4 set shiftwidth=4 set expandtab set number set hidden set hlsearch set incsearch set mouse=a " Use ag over grep set grepprg=ag\ --nogroup\ --nocolor " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore let g:ctrlp_user_command = 'ag %s -l --nocolor -g""' " ag is fast enough that CtrlP doesn't need to cache let g:ctrlp_use_caching = 0 for dir in ['backup', 'swap', 'undo'] let path = $HOME . '/.vim/' . dir if !isdirectory(path) call mkdir(path, 'p') endif endfor set backupdir=~/.vim/backup// set directory=~/.vim/swap// set undodir=~/.vim/undo// let g:airline_powerline_fonts = 1 let mapleader="," imap jj <Esc> nnoremap ; : " Yank text to the OS X clipboard noremap <leader>y"*y noremap <leader>yy"*Y " Preserve indentation while pasting text from the OS X clipboard noremap <leader>p :set paste<CR>:put *<CR>:set nopaste<CR> " Disable arrow keys map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop> " Easy window navigation map <C-h> <C-w>h map <C-j> <C-w>j map <C-k> <C-w>k map <C-l> <C-w>l " Clear search nmap <silent> ,/ :nohlsearch<CR> |
正如罗曼尔所知,VIM确实插入了EOL角色,但与我以前的其他编辑器不同,它并没有将它显示为新线。
请参阅:为什么我需要vim以二进制模式运行'noeol'?