タグ付けされた質問 「command-line」

元コマンドまたはコロンコマンドに関する質問。エディターの起動に使用されるコマンドラインオプションに関する質問については、[invocation]タグを使用してください。

4
標準入力からコンテンツを編集する方法は?
まだファイルを持たずにコマンドラインから動的に生成されたvimのコンテンツを編集したいと思います。 例: $ echo This is example. | vim /dev/stdin $ cat /etc/hosts | vim /dev/stdin しかし、エラーで失敗しています: Vim:警告:入力は端末からではありません Vim:入力の読み取りエラー、終了... それを達成することは可能ですか?

1
Vimの複数のインスタンス間でコマンド履歴はどのように解決されますか?
Vimはexコマンドの履歴を保持し(:↑and 経由でアクセス可能q:)、その履歴は終了後も保持されます。 Vimの複数のインスタンス(同じユーザー、同じホームディレクトリ)を実行している場合、Vimはコマンド履歴間でどのように仲裁しますか?終了する最後のプロセスが優先されるようです。すべてのインスタンスのコマンド履歴を保持する方法はありますか?

2
:コマンドで文字列全体をエスケープする方法は?
どれどれ。私はgvim走っているので、ファイルを開いて、autocmdsを尊重します(これは除外されます--remote-tab)。 今、私はできることを知っています(基本的に、いくつかの微調整を行います): gvim --remote-send ":tabe my_file<CR>" 動作します。しかし、ファイルにスペースや奇妙な文字が含まれている場合は、次のことを行う必要があります。 gvim --remote-send ":tabe my\\ file<CR>" (ダブル\\は、そのうちの1つがシェルに食べられるためです。これは、手動で入力するのと同じです。 `:tabe my\ file` でvim動作します)。これで、シェルなどでその文字列を作成する方法を見つけることができますが、次のように、「:tabe」コマンドで文字列を「グローバルに引用」できるといいのですが gvim --remote-send ":tabe 'my file'<CR>" または gvim --remote-send ":tabe \"my file\"<CR>" ---これは、vimコマンドラインに直接書き込むのと同じ:tabe "my file"です。動作していないようです。文字列内のすべてのスペースをシェルで明示的に引用して、次のようなことを行うことができます # <ESC> because the gvim instance can be in a mode different from normal # the double CR: do …

3
vimは入力されているコマンドを表示しません
私はvimtutorを読んでいて、レッスン2.1で、dwのようなコマンドを入力することについてこのメモがありました: NOTE: The letter d will appear on the last line of the screen as you type it. Vim is waiting for you to type w . If you see another character than d you typed something wrong; press <ESC> and start over. しかし、vimでもgvimでも、コマンドラインに入力しているコマンドが表示されません。どうすれば修正できますか?

7
vimで現在の行に一致する行を検索する方法
通常はで単語を検索しますが:/string、現在の行全体を検索する必要がある場合は、その方法を調べます。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 たとえば、現在の行全体を含むテキストの場合cursorとline 1同じように検索する方法が現在ある場合:/。カーソルは次に一致するline 4にジャンプし、再びline 7


3
コマンドラインモードタイプを<Esc>およびCtrlコマンドにする
以下の単語を引用したいとします。場合は|、カーソル位置がある、あなたは簡単に言葉を引用することができcw""&lt;Esc&gt;P、通常モードから。 |below コマンドラインモードでも同じ動作を実現したいと考えています。私の質問は、コマンドラインモードで「」と入力する方法を教えてください&lt;Esc&gt;。私は:norm cw""&lt;Esc&gt;P他のいくつかのバリエーションを試しましたが、""&lt;Esc&gt;P代わりにを取得しました"below"。 まだこれに関連して、コマンドラインモードタイプのCtrlコマンドを作成する方法を教えてください。たとえば、cw"&lt;C-r&gt;""&lt;Esc&gt;代わりに前述の単語を引用できます。しかし、入力するにはコマンドラインが必要になり&lt;C-r&gt;ます。これどうやってするの?

2
部分パスのZshのようなタブ補完
Vimでのファイル名のBashのような部分的なタブ補完に関連 の本当に素晴らしい機能の1つは、zshたとえばls /u/s/m/m/who.1を押しTabて、押して、まで完成させる ことができることですls /usr/share/man/man1/who.1.gz。慣れると/u&lt;tab&gt;/s&lt;tab&gt;/m&lt;tab&gt;/m&lt;tab&gt;...、特に部分パス全体が1つの実際のパスにしか解決できないが、個々のコンポーネントごとに複数の補完が存在する場合は、に戻るのは本当に面倒です。これはVimで実現できます:eか:cd? zshには、他の便利なパス関連の機能があります。たとえば、を使用cd foo barして、にfoo置き換えられたbar(つまり、に/blah/foo/baz/yadaなる/blah/bar/baz/yada)同等のパスに移動します。これらも取り入れたソリューション(基本的には、シェルに関連するタスクを、それらを非常にうまく実行するシェルに引き継ぐ)があれば、すばらしいでしょう。


2
コマンドラインのオプション値の自動補完
私がこれを試みた回数を数えることはできません: :set foldmethod=syn^I オプション値では補完が機能しないようです! オプションが複雑な文字列であり、補完が意味をなさない場合があります。(例'comments') しかし、一般的なユースケースにワイルドチャー補完を提供するための取り組みはありましたか? そうでない場合、上記の例をどのように機能させることができますか?(私が文字列の1つに完了したいと仮定します['manual', 'indent', 'expr', 'marker', 'syntax']。)

1
複数行で置き換えるには?
単語を複数行に挿入したいのですが、次のようなコマンドはありますか :[2,3,5,7,11]s/^/word\ /g word2行目、3行目、5行目、7行目、11行目の最初に挿入するのはどれですか。 ここでは、複数の線が連続していません。

4
コマンドラインで編集用に現在のファイル名を表示します
コマンドラインで現在のファイルへのパスを表示して、同様のファイル名を入力するにはどうすればよいですか?現在のファイル名に置き換えられる省略形は必要ありません。ファイル名を編集し、ディレクトリパスを入力します。たとえば:edit、類似した名前のファイル、または類似したディレクトリにあるファイル vim src/submodule/frontend/frobnicate2.c 次に、を編集し../trunk/src/submodule/frontend/frobnicate.c、を挿入../trunkおよび削除するだけで2、フルパスを再入力する必要はありません。 もちろん、シェルに戻ってそのコマンド履歴を使用することもできます。または、GUIを介してパスをコピーして貼り付けることもできますが、Vimを終了する必要がないより効率的な方法を探しています。

2
コマンドラインモードでviを使用する方法
常にホームポジションのままでコマンドラインモードを操作する方法はありますか? 特に、次の2つのアクションは面倒で、指を矢印キーに移動する必要があります。 動き回る:通常の位置のままでコマンドラインモードで前後に移動する方法はありますか? コマンドラインにコピーして貼り付けるにはどうすればよいですか?コマンドライン自体の一部から別の部分、またはテキストやクリップボードからの両方をコピーすることを意味します。

2
コマンドラインから標準出力にバッファ全体を書き込む方法は?
バッファ全体を/dev/stdoutファイルではなく標準出力()に書き込みたいのですが、次のコマンドはファイルの編集中に期待どおりに機能します。 :w &gt;&gt; /dev/stdout ヒント:Control+ Lを押して画面を更新します。 しかし、コマンドラインから(非対話的に)同じことを行おうとすると、期待どおりに機能しません。たとえば、次のようになります。 $ echo This is example. | vim - '+:w &gt;&gt; /dev/stdout' '+:q!' Vim: Reading from stdin... 同じ:w !tee、:x! /dev/stdout、:%printおよび同様。 終了する前に、それは言っています:[Device] 1L, 17C appended。 パイプの途中でvimに標準入力を標準出力に強制的に書き込む方法はありますか?多分それは何とか緩衝されていますか?

1
フルコマンドとショートコマンドの違い
使用の間に実際的な違いはありますか :e そして :edit より読みやすい:editので、マッピングで使用することが意味をなす読みやすさを除きます。 それらの間に違いはありますか? 注:これは他のすべてのコマンドにも適用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.