当前位置:  开发笔记 > 开发工具 > 正文

如何在Vim中编写连续的命名文件?

如何解决《如何在Vim中编写连续的命名文件?》经验,为你挑选了1个好方法。

我已经需要这几次了,只是现在它发生在我身上,也许Vim可以为我做这件事.我经常保存数量很多的文件,其名称无关紧要(无论如何它们都是临时的).

我有一个充满文件的目录:file001.txt,file002.txt ...(它们实际上并没有命名为"filexxx.txt" - 但为了讨论......).我经常保存一个新的,并命名为file434.txt.既然这是我经常做的事情,我想跳过命名检查部分.

是否有一种方法可以制作vim脚本来检查目录中的最后一个filexxx.txt,并将当前缓冲区保存为filexxx + 1.我应该怎么写这样的东西?以前有人做过这样的事吗?

所有建议都表示赞赏.



1> rampion..:

把以下内容放入 ~/.vim/plugin/nextunused.vim

" nextunused.vim

" find the next unused filename that matches the given pattern
" counting up from 0.  The pattern is used by printf(), so use %d for
" an integer and %03d for an integer left padded with zeroes of length 3.
function! GetNextUnused( pattern )
  let i = 0
  while filereadable(printf(a:pattern,i))
    let i += 1
  endwhile
  return printf(a:pattern,i)
endfunction

" edit the next unused filename that matches the given pattern
command! -nargs=1 EditNextUnused :execute ':e ' . GetNextUnused('')
" write the current buffer to the next unused filename that matches the given pattern
command! -nargs=1 WriteNextUnused :execute ':w ' . GetNextUnused('')

" To use, try 
"   :EditNextUnused temp%d.txt
"
" or
"
"   :WriteNextUnused path/to/file%03d.extension
"

所以,如果你在一个目录temp0000.txt通过temp0100.txt都已经用完了,你这样做:WriteNextUnused temp%04d.txt,它会返回当前缓冲区temp0101.txt.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有