我有一个MoveToFile
将所选文本追加到文件然后删除它的功能。Vim E139:解决方法
command! -nargs=* -complete=file -range=% -bang -bar MoveToFile
\ :<line1>,<line2>call MoveToFile(<q-args>, <bang>0)
function! MoveToFile(fname, overwrite) range
let r = a:firstline . ',' . a:lastline
exe r 'w>>' . ' !'[a:overwrite] . fnameescape(a:fname)
exe r 'd'
endfunction
当我试图追加到的文件已经在Vim中打开时出现问题。我怎样才能解决这个问题?
又见【答案】(http://stackoverflow.com/a/7723380/254635)(问题“[删除并重定向Vim中的行到另一个文件](http://stackoverflow.com/q/7720520/254635)”)该功能已被复制。 – 2012-08-12 02:08:35
修改了'MoveToFile()'后,您引入了一个错误以附加到文件而不是覆盖它。函数的第二行应该是'exe r'w'。 '!'[a:覆盖]。 '>>'。 fnameescape(一个:FNAME)'。 – 2012-08-12 03:25:36