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

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

1
シェルを呼び出す際の誤ったエンコーディング
私はDOTダイアグラムを試し、次のことを試みました。 :! dot -Tpng -oFab.png % ファイル名に特殊文字(ó「Fabricación」の「」)が含まれているため、エラーが発生しました。 C:\windows\system32\cmd.exe /c ( dot -Tpng -oFab.png Fabricaci├│n.gv) Error: dot: can't open Fabricaci├│n.gv shell returned 2 Hit any key to close this window... ご覧のとおり、「├│」の特殊文字が変更されています。これは、Win7とNTFSでのvimとgVim 7.4に対応しているため、ファイル名はUTF16であると想定しています。また、shell / cmdを呼び出すときに、ファイル名が他のエンコードとして解釈されていると想定しています(デフォルトのコードページ850を指摘してくれたCarpetsmokerに感謝します)。 どうすれば修正できますか? 確かに、ファイルの名前を変更することはできますが、これが発生する理由と修正方法を知りたいのですが。 更新:私はこの質問をsuperuser.SEで見つけました(@ ChristianBrabandtによるフィードバックに感謝します)が、それも役に立たないようです。

4
“ gf”(または同様の)を使用してファイルを開き、検索語にジャンプできますか?
ファイルパスの引数gfを認識するvimのコマンド(または類似のもの)を取得する方法はあり+{cmd}ますか? vimを起動して、次のようにして検索語に直接移動できます。 $ vim +/coding_effort ~/project/file 同様に、コマンドモードでは次のことができます。 :e +/coding_effort ~/project/file 私はよくメモを取り、次のような他のファイルを参照します。 For more info see +/coding_effort ~/project/file where there's a detailed discussion. 私はを選択し+/coding_effort ~/project/file、のようgfに入力して、vimに正しいことをしてもらいたいと思っています。

3
強調表示されたソースコードをファイルに出力してvim外で使用する方法
私の職場では、私たちが抱えていたいくつかの問題を解決するために開発したカスタム言語のプレゼンテーションをしたいと思います。開発を容易にするために、この特定の言語用に独自のvim構文ファイルを作成しました。 今、私はそれを別のコンピュータに提示する必要がありますが、その構文ファイルはありません。私が知っていることすべてのために、それはvimがインストールされていないかもしれません(しかし私はそれを疑います)。 less -r自分のコンピューターで行うのと同じ構文の強調表示をファイルで取得できれば完璧です。 ただし、(Debianのgnomeからのターミナルで)色を保持しながらコピーして貼り付ける方法、またはvimから生の制御文字として構文を強調表示してファイルを出力する方法がわかりません。私はvimから解決策を見つけることに自信がありますが、それを行うために何を探すべきかわかりません。 開いたファイルの構文を強調表示して別のファイルのANSI raw-control-charsとして出力する方法を知っていますか?

1
「:ls」の結果をファイルに書き出す方法はありますか?
現在、たくさんの分割があり、これらのファイルを見つけるのにしばらく時間がかかりました(基本的に、相互に接続された50個のファイルを通してバグを追跡しています)。 :ls > /tmp/filelist私がファイルに対して開いている現在のスプリット/バッファを書き出すようなコマンドはありますか?

2
`:w'`を`:w`にエイリアスして、 'という名前のファイルを作成しないようにする方法はありますか?
たまに、私の小指が'エンターに到達するまでキーをかすめるため、が発生し:w'<Enter>ます。 私はもう試した: cabbrev w' :w cabbrev w\' :w cabbrev "w'" :w それらのどれも動作しません。エイリアスする方法がある:w'のでは:w? また、通常のコマンドラインの代わりにcmdwin(:help cmdwin+ nnoremap : :<C-F>)を使用しているので、そこでも機能する場合はボーナスポイントになります。

1
:g / ^ / normおよび:%normによるラインリファレンスの違いの理解
次の非常に単純なファイルがあるとしましょう a b c d e そして、各行の後に空行を追加することにしました。いくつかの異なる方法がすぐに思い浮かびます。私たちはそれをするだけかもしれません(したがって、失敗を受け入れます)。のようなマクロを記録し、qqo<ESC>jqそれを数回繰り返す場合があります。 当時、私には他の2つの方法がより明白に思えました。 まず、:normコマンドoを各行に発行すると思いました。だから私は走る:%norm o。しかし、実際に何が起こるかというと、5行の空白行があり、その後に上記の分離されていない行が続きます。私はこれを%norm、vimが実際にこの5行のファイルの最初の5行で次の通常のコマンドを発行してメッセージを取得することを意味すると解釈します。oコマンドは、新しい行を作成し、vimのは、それはいくつかの他の識別子によって、実際に行番号で参照していないという意味で「ダム」です。 さて、恥ずかしかったです。承知しました。上記の方法が機能するかどうかを確認するために、他にもいくつか試してみましたが、残念ながらできませんでした。好奇心から、私は他のお気に入りの大量適用方法を試しました。これは私を試してみました:g/^/norm o。驚いたことに、これはうまくいきます!だから私の目には、vimは上記と同じようにここでは「ダム」ではなく、単に行番号だけではなく行を参照しているようです。 正確には何が起こっているのですか?

1
コマンドプロンプトの '<、'>
たまに:入力してファイルを終了したり書き込んだりすると、:'&lt;,'&gt;何も入力しなくてもプロンプトにすでに文字が含まれています。私が入力した場合には、エラーの原因となりますwかq。この問題は再現できません。それは最も奇妙な時に起こり、私はそれを引き起こしている原因を特定することができませんでした。 私が誤って入力していq:たので:qはなく、終了に問題があったことを理解するのに、私は永遠にかかりました。その小さな癖について知ったので、この他の動作の原因を突き止めようとしています。誰かの大佐の命令のどこかで見たのですが、何も見つかりません。 これは予想される動作ですか?何が原因ですか?

1
特定の名前または拡張子を持つ「古いファイル」を検索できますか?
oldfilesとbrowse oldfilesコマンドをいつも使用しています。私のリーダーマッピングにアクセスし、ファイルをすばやくスキャンして、 q&lt;number&gt;&lt;enter&gt; 特定のファイルへの非常に長いディレクトリパスを入力するのではなく、(特に時々、それがどのディレクトリにあるのか覚えていないことがあります) ただし、欠点は1つだけです。私はvimを頻繁に使用しているため、探しているファイルが数十および数十行下にある場合があるため、検索に非常に長い時間がかかります。oldfiles特定の拡張子のみを表示するためにによって与えられたファイルのリストをフィルタリングできる方法はありますか? たとえば、次のようなコマンド: browse oldfiles *.py これは、.py最近開いたファイルのリストを表示し、番号の入力を求めてから、そのファイルを開きます。 これを行う方法がない場合、同様の機能を持つプラグインはありますか?

1
コマンドラインから行の範囲を選択する
コマンドラインから一定範囲の行を(視覚的に)選択する必要があります。 たとえば、次のコマンド:?^\s*for?+,/^\s*end/- pは、a forとend(の間にある)の間に含まれるすべての行を出力します。印刷操作を実行する代わりに、これらの行が強調表示されたビジュアルモードに切り替えたいと思います。マニュアルで検索しましたが、そのような元のコマンドは見つかりませんでした。

1
makeのオートコンプリート
私は、カスタム設定した場合はmakeプログラムを、私が入力したときにアクティブになるだろうタブ補完オプションのリストを提供するためにどのような方法がある:make+ Space+はTab? カスタムコマンドを使用すると、fiを実行できます。 command! -nargs=* -complete=customlist,MakeComplete -bar MakeGitbook call MakeGitbook(&lt;q-args&gt;) 組み込みコマンド、特に:make?または、組み込みのものを呼び出すだけでなく、タブ補完を追加するカスタムコマンドラッパーを定義する必要がありますか?

3
コマンドラインからvimを起動して、\を含む特定のコマンドを実行するにはどうすればよいですか?
私の~/.vimrc場合、ほぼ次のように定義されたコマンドがあります。 nnoremap &lt;expr&gt; &lt;Leader&gt;n ':new ~/Notes/' . strftime('%F') . '-' ファイル名に現在の日付を含むノートファイルを作成するために設計されています。キーバインドは、コマンドラインにカーソルを置いたままにして、メモのトピックを入力してを押すように設計されていますReturn。 これは、vim内から機能します。ただし、vimを開いてこのコマンドを起動するために使用できる端末コマンドも指定しようとしています。私はもう試した: vim -c '\n' (私のリーダーはデフォルトのに設定されていますが\、変更しない方がいいでしょう) ただし、これは機能しません。代わりに、コマンドラインの処理中にエラーが検出されました。E10:\の後に/ 、? または&。これがvimのバグなのか、何か間違っているのかわかりません。私も試しました: vim -c '&lt;Leader&gt;n' しかし、これは与える:E488::後続の文字:コマンドラインの処理中にエラーが検出されたNキーを押して続行するために、コマンドを入力するか、または入力します。 私が望むものを達成する方法はありますか?

1
編集された行に対してのみクリーンアップコマンドを実行できますか?
以下の質問で詳述されているようなクリーンアップタスクを参照します(これに限定されません)。 ひどくインデントされたコードの再インデント ファイルのすべての行から末尾の空白を取り除く最も簡単な方法は何ですか? 実際に変更されたファイルの行のみにこれらのコマンドを適用する方法はありますか?これは、ソースコードを編集した後の実際の変更に焦点を合わせた差分出力を維持するためです(潜在的なコードレビューアーは、ファイル全体のクリーニングに関連する変更によって混乱しないでしょう)、新しい書式設定の問題は発生しません。

2
vimrcから呼び出すことができるプラグインでコマンドを設計する方法
ユーザーがカスタムオペレーターを作成できるようにするプラグインに取り組んでいます。オペレーターは、移動するモーションまたはテキストオブジェクトにVimL式を適用します。 クリーンなユーザーインターフェイスを維持する カスタムオペレーターを定義するための最もクリーンなインターフェイスは、コマンドを使用することだと思います。:MapExpress次のようなコマンドを呼び出すコマンドを定義しました。 :MapExpress cd '/* ' . v:val . ' */' これはcd、Cスタイルのコメント区切りでモーションまたは選択を囲むために、ノーマルモードオペレーターとビジュアルモードマッピングを作成します。 もちろん、ここに問題があります。プラグインで定義されているコマンドを.vimrcファイルから呼び出すことはできません。 不十分な回避策 私は完全に満足していないいくつかの回避策を考え出しました。 ユーザーautocmd VimEnter *がコマンドを呼び出すために使用する これは機能しますが、多くの「精神的オーバーヘッド」が追加されます。多くのVimユーザーはどのようにautocmd機能するかをしっかりと把握していないと思います。 ユーザーが~/.vim/after/plugin/コマンドを呼び出すファイルを作成します これも機能しますが、この構成の一部が独自のファイルでオフになり、簡単に失われて忘れられるという欠点があります。 コマンド定義をプラグインのautoload/ディレクトリに移動し、ユーザーがファイルのロードをトリガーするいくつかのメソッドを呼び出して、コマンドを定義します これは次のようになります。 call express#init() MapExpress cd '/* ' . v:val . ' */' 少し良いですがexpress#init()、プラグインが機能するためにメソッドが必要かどうかについて混乱を招きます。 コマンドを使用する代わりの方法 オペレーターを定義するコマンドを使用するいくつかの代替案も検討しましたが、それぞれに注意点があります。 ユーザーは関数を呼び出して演算子を定義します これは次のようになります。 call express#operator('cd', '"/* ".v:val." */"') これはひどいことではありませんが、引用符で囲まれた式が必要になるという欠点があります。式で引用符を使用したい場合は、煩わしいことがあります。 ユーザーが&lt;expr&gt;マッピングを使用 このような: nmap &lt;expr&gt; …

1
コマンドモードでバッファを参照できますか?
コマンドラインモードで現在および以前のバッファのファイル名を参照する%およびについて知ってい#ます。同様に他のバッファを参照する方法はありますか? たとえば、それ:lsが私に与えるとしましょう: 1 #h foo.txt 2 h bar.txt 3 %a baz.txt ...そして、コマンドを使用して以下の効果を得たい: :!pandoc foo.txt bar.txt baz.txt -o out.pdf 少しタイピングが少ないだけです。に沿って何かを想像します :!pandoc b1 b2 b3 -o out.pdf そう。このようなものはありますか?どこかにアドオン、または私が使用できる便利なvimscriptのビットがありますか?

1
範囲を超えて通常のコマンドを実行する
次のようなファイルの場合: 2 AD,42.546245,1.601554,Andorra,376 3 AE,23.424076,53.847818,United Arab Emirates,971 4 AF,33.93911,67.709953,Afghanistan,93 5 AG,17.060816,-61.796428,Antigua and Barbuda,1 最初の10行の先頭のスペースと数字を削除しようとしているので、 AD,42.546245,1.601554,Andorra,376 AE,23.424076,53.847818,United Arab Emirates,971 AF,33.93911,67.709953,Afghanistan,93 AG,17.060816,-61.796428,Antigua and Barbuda,1 「2つの単語を削除する」:d2wが1行では機能するが、範囲では機能しないのはなぜ:1,10d2wですか? 注意: この問題自体は、を使用する固定形式により解決される:1,10s/.\{8\}//ため、これは、範囲を使用して:dNw

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