VIMで「hello」という単語が含まれていない行をすべて選択するにはどうすればよいですか?私はそれをヤンクしてからファイルに保存する必要があります。どうしたらいいですか?あなたは、このコマンドを使用することができ、あなたのシステムにgrep
を持って提供VIMでの線形選択
:v/!(hello) > file
VIMで「hello」という単語が含まれていない行をすべて選択するにはどうすればよいですか?私はそれをヤンクしてからファイルに保存する必要があります。どうしたらいいですか?あなたは、このコマンドを使用することができ、あなたのシステムにgrep
を持って提供VIMでの線形選択
:v/!(hello) > file
:g!/hello/ yank A
ラインは現在、彼らは「AP
編集を行う貼り付けるために、レジスタAに格納されています
:g =グローバル検索
!=ブールテストの否定
/hello/=「hello」と一致する正規表現
y =一致する各行(この場合は「yank」)で実行するコマンド
A = "yank"コマンドへの引数のレジスタ。この場合、レジスタ 'a'は大文字の形で置き換えるのではなく、レジスタに追加することを意味します。
:私のようなものを探しています
:!grep -v hello % > file
「%」はgrepのための特別な文字ではない、それはvimのコマンドラインのための特別な文字で、以下を参照してくださいヘルプCMDLINE-特別 – user55400
私は通常
:g/hello/d
のいくつかのバリエーションでこれを行いますすなわち「hello」を含むすべてを削除し、次に選択するか、取り消すか、何をする必要があるかを決定し、最後にuを押し戻します。 これは、精神的に税金が少なく、コマンドラインパイプを構築することが少なくなっています。
これは、同じ問題に私のものよりもはるかに短いコマンドです。 –
を選択して、新しいファイルに書き込む:Vimのコマンド
:let @a='' | g!/hello/normal "Ayy
した後は、レジスタ 'A' に 'ハロー' を持っていないすべての行を持つことになります
:g/hello/ . w!>> file
+1 - helloを含まないすべての行を選択するには、そのg /をv /に切り替える必要があります。 – rampion
どうしますか?平均? –
。あなた「AP通常のコマンドを使用して、その値を貼り付けるか、
:let @*[email protected]
をシステムクリップボードにこの値を入れて、あなたは、WindowsまたはMac OSや「マウスの中で 『Cmdを+ V』にし、 『はCtrl + V』を使用することができますすることができます「テキストを貼り付けるために、Linux上で魔法の
簡単な説明。:
@aはに格納された値にバインドされているVimの変数である 『クリック』レジスタ
」。 p、"bp、" cp、..は特定のレジスタの値を超えてVimノーマルモードでのキーの組み合わせです。
@ *は、システムクリップボードにバインドされたVim変数です。
@ a = @a「a」の値をシステムクリップボードに入力します。
これを.vimrcに追加するか、またはプラグインディレクトリでファイルを作成します。
CopyUnmatchedLines hello
してからちょうど任意のエディタに貼り付けコマンドを使用します。
function s:copy_unmathced_lines(pattern)
let result_lines = []
for line in getline(1, '$')
if line !~ a:pattern
call add(result_lines, line)
endif
endfor
let @* = join(result_lines, "\n")
endfunction
command -nargs=1 CopyUnmatchedLines call s:copy_unmathced_lines(<q-args>)
ユースケースは簡単です。 これはVIMに何を意味するのかに興味がある方のため
:g!/hello/y A
と省略することができます::
この回答はとても涼しいようですが、なんとなく分かりにくいです。おそらく、物事が表面の下でどのように働くかを誰かが答えて明らかにすることができます。 "@a"や "let"のような奇妙なものは何ですか? ex、vimまたは何か他のもの? –
これまでに言及していなかった代替案がredirectonです。
だからあなたの場合のために、これは
:redir > file
:g!/hello/
:redir END
も参照
:help redir
:help verbosefile
FGMの答えはほとんどあり
だっただろう:Vはそう
に一致しない行を選択します以下は、 "hello"を含まない行をeeeというファイルに追加し、iを作成します必要に応じてt。
:v/hello/ . w!>>eee
Blixtorのスニペットと実用例: ":verbosefile" で失われたメールfriends。
I.オープンマニュアル ":電子を/ tmp/NEW_FILE" と ":時間verbosefile"、その後のコピー・猫blixtorの先端みましょう:
:redir > /tmp/verbosefile_instructions
:g/verbosefile/
:redir END
IIを。あなたのメールのレグに関する標準的なルールに従っていることを確認し、標準的な挨拶を出してください:
:match ErrorMsg /\%>73v.\+/
:so /bin/greetings.vim
III。 Muttでファイルを送信してください。視覚的な選択とコピーについて
例:はあなたが一部を分離するとします:
ビジュアル選択し、それを押し ":"
が、その後のコマンドを使用します。
を: '<、'>! > ../new_file_in_a_subdirectory
エラー:色がファイルにコピーされ、それが実際にカットアンドペーストではなく対処されていません。
かなりストレートです。
:v/hello/ |redir >> file
:vは:g!と同等です。 – sjh
ああ、そのdysmsydのおかげで。私は実際にそれをたくさん使用します。 – bfabry
あなたの答えは質問の残りの部分に答えてくれないようです: ">ファイル"。人々が賞金の中で返信を再評価しよう。 –