将选定的文本附加或添加到 Vim 中的文件中

发布于 2025-01-02 16:10:59 字数 242 浏览 0 评论 0原文

在 Vim 中,有没有办法将选定的文本移动到 .bak 中,追加或前置? 如果可能,不应显示备份文件。

我设想的工作流程是:

  1. 选择一些文本
  2. 输入 :sbak
  3. 选择内容保存到 .bak

In Vim, is there a way to move the selected text into <current_file>.bak, appending or prepending?
If possible, the backup file should not be displayed.

I envision the workflow to be:

  1. Select some text
  2. Type :sbak
  3. The selection is saved into <current_file>.bak

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青衫儰鉨ミ守葔 2025-01-09 16:10:59

您可以分三步完成:

  • 输入 Shift-vj...j 选择某些行,
  • 输入 : '<,'>w! >>file.bak 将选定的行保存到 file.bak(追加)
  • 类型 gv d 删除原始行

如果您愿意,您可以编写用户定义的命令Sbak

com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<f-args>)
fun! MoveSelectedLinesToFile(filename)
    exec "'<,'>w! >>" . a:filename
    norm gvd
endfunc

You can do it in three steps:

  • type Shift-vj...j to select some lines
  • type :'<,'>w! >>file.bak to save selected lines to file.bak(append)
  • type gvd to delete original lines

You can write a user-defined command Sbak if you like:

com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<f-args>)
fun! MoveSelectedLinesToFile(filename)
    exec "'<,'>w! >>" . a:filename
    norm gvd
endfunc
还不是爱你 2025-01-09 16:10:59

怎么样

  1. v
  2. 一些移动命令/甚至搜索来选择文本
  3. :'<,'> ?哇! >>> /YOUR/SELECTIONFILE
  4. :'<,'>d

这就是您想要的吗?如果是这样,请为其设置一个map,例如

map <F2> :'<,'> w! >> /YOUR/SELECTIONFILE<cr>:'<,'>d<cr>

注意,这会附加到SELECTIONFILE并且不仅仅是选择,但整条线。另外,请阅读 :h :w:h ++opt (其中您可以了解写入文件的可能选项(例如,您可以使用以下命令附加到文件)不同的编码,这真的会把事情搞乱,所以不要这样做;-)

What about

  1. v
  2. some movement command/even search to select the text
  3. :'<,'> w! >> /YOUR/SELECTIONFILE
  4. :'<,'>d

Is that what you want? If so set up a map for it, like

map <F2> :'<,'> w! >> /YOUR/SELECTIONFILE<cr>:'<,'>d<cr>

Note this appends to SELECTIONFILE, and not only the selection, but the whole lines. Also, read :h :w and :h ++opt (in which you can learn about the possible options for writing files (e.g.) you can append to a file with different encoding, which really messes things, so don't do that ;-)

还如梦归 2025-01-09 16:10:59

您可以使用以下命令将 vim 标记选择的文本写入文件中。

例如,您转到第 :20 行,然后将其标记为 ma,然后转到第 30 行 :30 并将其标记mb 然后复制第 20 到 30 行写入文件 filename.dat :'a,'bw filename.dat.

:'a,'bw filename.dat 写入行标记ab标记到文件filename.dat

:'a,'bw! filename.dat 将现有文件 filename.dat 替换为从标记 a 到标记 b 的行

:'a,'bw >>> filename.dat 将标记 a 到标记 b 的行追加到文件 filename.dat 中

You can write text selected by vim marks into a file using the below commands.

For example you go to line :20 and then mark it ma and then go to line 30 :30 and mark it mb and then copy lines 20 to 30 to file filename.dat :'a,'b w filename.dat.

:'a,'b w filename.dat to write lines from mark a to mark b into file filename.dat

:'a,'b w! filename.dat to replace the existing file filename.dat with lines from mark a to mark b

:'a,'b w >> filename.dat to append lines from mark a to mark b into file filename.dat

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文