問題タブ [vim-registers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - Vimでは、レジスタにテキストを入れずに削除する方法はありますか?
Vim を使用すると、コードのブロックをヤンクしたばかりのブロックに置き換えたいことがよくあります。
しかし、置き換えられるコードのブロックを削除すると、そのブロック自体がレジスターに入り、ヤンクしたばかりのブロックが消去されます。そのため、不要なものをヤンクして挿入し、削除する習慣がありますが、コードのブロックが大きいと、挿入されたブロックと削除するブロックを別々に保持しようとすると、面倒になります。
では、Vim でテキストを置き換える最もスマートで迅速な方法は何でしょうか?
- テキストを登録せずに削除する方法はありますか?
- 「次の単語を置き換える」または「次の段落まで置き換える」などと言う方法はありますか
- または、マルチレジスタ機能を何らかの形で使用する最良の方法はありますか?
vim - あるレジスタから別のレジスタにコピーする
クリップボードに貼り付けずに、あるレジスタの内容を別のレジスタにコピーする方法は? 1 つのテキストをヤンクしたところ、デフォルト"
レジスタにヤンクされました。ここで、レジスタを削除/上書きせずに別のテキストをコピーしたいと考えています"
。そのため、 registerの内容を移動して、いくつか"
を言うか、 register 内に新しいテキストをコピーできるようにします。これを行う方法?a
b
"
vim - vimでレジスタを組み合わせる
vimでレジスタを組み合わせることができますか?たとえば、レジスタ「a」、「b」、「c」がある場合、3つすべてを連結したレジスタ「d」を簡単に作成できますか?つまり、すべてを貼り付けてから全体を選択する必要はありません。
vim - Ex モードでの Vim レジスタの使用
潜在的に 1 つで 2 つの質問。Exモードでレジスタを参照する方法を教えてください。
たとえば、ファイルを編集していて、ファイルにタイムスタンプ (または実際には単に日付スタンプ) を追加して保存したいとします。
次を使用して、レジスタをシェルコマンド出力の値に設定できることを知っています。
このレジスタを逆参照して、その値を Ex コマンドに挿入する方法はありますか? 何かのようなもの:
システムのクリップボードにコピーして貼り付けることはいいことですが、将来的に他のコマンドで構築するために、より一般的/プログラム的な方法でそれを行うとよいでしょう。
vim - Vim:レジスタに複数のコマンドを格納するときに改行を処理するにはどうすればよいですか?
vimコマンドのスニペットを保存するファイルがあります。スニペットが必要な場合は、それをヤンクしてから、を使用して実行し@"
ます。スニペットは、次のように、コマンドごとに1行のスクリプトとして保存されます。
編集:通常モードのコマンドは問題の一部ではなかったため、例から削除しました。
この手順は機能しなくなりました。スニペットを実行すると、改行を待っているかのように最初の行で停止します。
実行方法に影響を与えるオプションはどこかにありますか@
?私はそれがしばらく前に働いていたとかなり確信しています...
改行を^M文字に置き換えることは機能しますが、ファイルの処理がより困難になります。
追加情報:
別の症状があります。スニペットをヤンクすると、それを実行すると、@"
先ほど説明したように最初の行で停止します。しかし、私がそれを実行すると、:@
それは機能します。しかし、ヘルプファイルは、2つのコマンドがレジスタのコンテンツを処理する方法に違いがあることを意味していないようです...
regex - vimのレジスタから改行を削除しますか?
さまざまな大学名の長いリストがあります。特定の一意のキーワードを含む行を照合して、類義語テーブルを作成しようとしています。つまり、このファイルでは、Harvard がキーワードであることがわかります。
それらを別のファイルに貼り付けます
カーソルの下の単語を検索し、その単語を含む行をレジスタにヤンクし、レジスタを他のファイルに貼り付け、結合コマンド「J」を使用して行を結合することでこれを行ってきました。
これは問題なく機能しますが、合理化してほしいと思います。具体的には、最後のステップで JJJJ を使用して手動で行を結合する必要がないように、レジスタから改行を削除する方法を知りたいです。カーソルの下の単語を含むすべての行を検索し、それらを「a」レジスタにコピーし、「a」レジスタから改行を削除してから、「a」レジスタの内容を貼り付けたいと思います。
何か案は?
編集:私は知っています:
- %s/\n//g など、グローバルに検索して置換する方法
- バッファ内の 'foo' を単語からレジスタの内容に検索して置換する方法 (例:%s/foo/a/g)
- レジスタの内容を検索してバッファ内の 'foo' に置き換える方法、例:%s/a/bar/g
知っておくべきこと:
- レジスタ「a」からレジスタ「b」までを検索して「foo」を「bar」に置き換える方法
- レジスタ「a」からレジスタ「a」まで「foo」を「bar」に検索して置換する方法
vim - 異なるVIMタブに同じレジスタ
タブで開いた1つのファイルから、別のタブで開いた別のファイルにコピーして貼り付けようとしています。
したがって、ビジュアルブロックを使用して選択を取得し、ヤンクしますが、他のタブに切り替えると、貼り付けられません。次のように表示されます。
登録するものはありません
異なるタブに同じレジスタを使用する方法はありますか?
vim - vimでは、setregを使用してキャリッジリターンをレジスタに追加するにはどうすればよいですか?
.vimrcに次のコマンドがあります。
このようにバッファに入力してレジスタ'g'を設定すると、次のように機能します。
:registersと入力すると、次のように表示されます。
その後、@ gと入力するとキャリッジリターンが返され、カーソルが次の行に移動します。^Mは特別な色で表示されます。
ただし、vimrcでsetregコマンドを使用するときに、@ gと入力しても、何も起こりません。
:registersと入力すると、次のように表示されます。
^Mは特別な色ではありません。
.vimrcには次のものがあります。
レジスタに格納したいキャリッジリターンは、MyFunctionを実行することです。setregを使用せずに手動でバッファを埋める限り、MyFunctionは完全に呼び出されます。
どこが間違っているのですか?私のプラットフォームはLinuxです。
vim - Vim レジスタ標準
レジスターを一般的なコーディング手法と同じに設定することを考えていました。たとえば、私はこれを行うことを考えていました:
次にf
、 for ループ、w
for while ループなどを設定します。これは悪いテクニックですか、それとももっと良い方法がありますか?
vim - CMakeLists.txtを作成するVIM関数
私はVimを初めて使用し、CMakeファイルを作成するためのVim関数を作成したいと思います。
それは機能せず、どうすればよいかわからないので、コードの関連部分は次のとおりです。
現在のファイルの名前を拡張子なしで変数にコピーし、それを新しいファイルにコピーして保存して閉じます。
@%:tは無効な式であり、1つのファイル名のみが許可されていることを示しています。
ありがとう!