選択したテキストをVimのファイルに追加または追加する

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

私はワークフローを次のように考えています:

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

2 答え

あなたは3つのステップでそれを行うことができます:

  • 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

必要に応じて、ユーザー定義のコマンド Sbak を記述することができます。

com! -nargs=1 -range Sbak call MoveSelectedLinesToFile()
fun! MoveSelectedLinesToFile(filename)
    exec "'<,'>w! >>" . a:filename
    norm gvd
endfunc
29
追加された
現在のファイル名を取得するには expand( '%:t')を使用します
追加された 著者 kev,
いつものように、 aname: fnameescape()
追加された 著者 ZyX,
良い、今のさらなるステップ:1. .bakをbakファイル名として自動的に使用する。2. prependは付加しない。 THX。
追加された 著者 greatghoul,
thx、私はそれを得た、私はそれをショートカットにマップする
追加された 著者 greatghoul,

どうですか

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

それはあなたが欲しいものですか?そのために map を設定した場合

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

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 ;-)

11
追加された