Vimが好きな理由:あまり​​知られていない機能が驚くほど素晴らしい

2016年にVimを使い始めてから、Vimがプラグインなしですぐに使用できるいくつかのあまり知られていない機能を発見しました。

これらの新しいことについてとりとめなく始める前に、いくつかの基本をカバーできますか?

はい!チートシートからいくつかのコマンドをコピーして貼り付ける前に、大胆な仮定を立てます。チートシートが必要で、Vimの基本をすでに知っているなら、これを読むことはないでしょう。

LinuxディストリビューションにはVimと呼ばれるデフォルトのコマンドラインテキストエディターが付属していることを聞いたことがあるかもしれませんが、試してみてください。

それで、あなたがこのゲーム全体に完全に慣れていないと仮定し、基本として必要なものから始めましょう(歴史/退屈な理論なし)。

注:基本がわかっている場合は、ここをクリックしてそれらを過ぎてスクロールしてください

Vimに関する他の多くの記事と比較して、ここでの取引は何ですか?

Vimの紹介記事のほとんどは、Vimのモード、挿入、保存、終了から始まります。理論的な完璧さの学習モードの気分に実際になっている場合は、ウィキブックで役立つものは何でも自由に読んでください。

また、Vimの動作方法の背後にある哲学があり、VI / Vimのコマンドを組み合わせることが意図されていることを伝える優れた書籍や記事もあります。絶対に真実であり、エディターとエディターが提供するパワーに慣れていただければ、きっと喜ばれるでしょう。

私は面白い話を聞いて、Vimの学習曲線に関する面白い画像を見ました。本当?それは実際にそれが悪いですか?

さて、嫌いは嫌いだしかし、私によると、Vimを適切に表現するイメージは次のとおりです。

礼儀:https://pascalprecht.github.io/2014/03/18/why-i-use-vim/

Vimの記事の大部分は、学習*曲線*を学習*壁*として言及していますが、ちょっと肯定的です。壁の反対側を見てください。

初心者にとっては、コマンドラインでエディターを使用する前にこのようなことをしたことがないため、文字通り壁です。私が初心者として始めたとき、私にとって最も魅力的だったのは、Vimの遍在性でした。

任意の端末から(Windows以外の)マシンにログインすると、目を閉じて* vi *と入力することで文字通りエディターを取得できます。エディターが目の前に表示されます!

もう1つ魅力的だったのは、マウスなしで、タッチパッドで生産的な時間を無駄にしたり、ラップトップ用のマウスを入手したりせずに作業できることです。

私は知っている、知っている、私はあなたの何人かが「Emacs! Emacs!」しかし、Vimに夢中になってからは、emacsにまったく興味がありませんでした(インストールが必要なためかもしれません)。だから、ええ、emacsも素晴らしいと思います。 VI(m)を使用してこの美しい旅に出航する前に、船を自由にジャンプしてください。

ターミナルを開いてviと入力し、リターンキーを押しました。表示されるのはようこそ画面だけです。入力できず、どうやって抜け出すかわからない。機能を備えた強力なエディターですか?

100%確実。目撃したばかりの動作は、先ほど見た*壁*です。信頼してくださいVI(m)は他にも多くのことができます。独自の使用方法があります。ファイルを編集したり、タブを開いたり、画面を水平または垂直に分割したり、ファイルシステムを閲覧したり、ファイルを終了せずにLinuxコマンドを実行したり、ファイルを終了せずにソースコードからmakeビルドをトリガーしたり、ディレクトリをブックマークしたり、さらにファイルの行をブックマークしたり、単語の検索と置換、もちろんコピー&ペーストなど。

うん!編集者がそれらをサポートすることは大したことです。えっ!誰もがそれをします。大したことは何ですか?

大したことはありません。私が見る唯一の取引は、キーボードを離れることなくファイル/コードに集中できることです。実際、マウスを使用しても構わない場合は、MS word / GUI Editorを開いて、必要な編集をすべて行ってください。

けっこうだ。しかし、真剣に、なぜいくつかの仕事のためのIDEではないのですか?

わかりましたので、あなたは開発者であり、IDEが好き/愛されています。いいえ、VI(m)は光沢のあるIDEの代替品ではありません。 VI(m)には、IDEのすぐに使えるすばらしい機能はありません。 VI(m)は、かさばるIDEと比較してサイズ(パッケージおよびインストール)が小さく、構成およびインストールなしで使用できます。真剣に、VI(m)はあなたのIDEが提供するいくつかの素晴らしいものにマッチしません。

十分な話、基本を教えてください?

もちろん、始める前に、Vimユーザーは基本的にコマンドモードと挿入モードを処理する必要があることに注意してください。エスケープはありません(文字通り、Escキーではありません)。

エディターを使用していて、C言語の長い関数を削除したいとします。簡単な手順は次のとおりです。カーソルを行の先頭に置き、Shiftキーを押しながら下矢印を押すか、マウスを使用します。これらの行を選択するために必要なこのアクションでは、入力を*停止*してキーを押す必要がありました。そうじゃない?何かを入力し、同時にキーを押して機能の本体を魔法のように選択したとは言わないでください。

合理的であること。入力を一時停止し、選択テキストを編集して、このテキスト(コピー/カット/太字/イタリック/その他)で何かを行うことをエディターに伝えました。

この一時停止は、VI(m)でコマンドモードになっているのと同じです。これは、いくつかの行/単語/何かに対して何らかのアクションを実行したいが、タイプしないことをVI(m)に伝えるときです。これで、VI(m)は挿入モードを終了し、ファイルにテキストを入力できなくなりました。明らかに、ファイルに実際に入力できるもう1つのモードは挿入モードです。

ところで、テキストを選択せず​​に、またはマウスを使用せずに機能の本体を選択する方法について疑問がある場合は、カーソルを開き中括弧に置き、キーストロークを使用してそれを達成します:

はい、それはあなたの関数本体の内容を削除します。いいえ、覚えておくべきキーの不気味な組み合わせではありません! dは、何かを削除することを示します。 %は、カーソルを一致する中括弧の最後に移動します。

基本モードを確立したので、基本VI(m)に飛び込みましょう。

書いているファイルの名前がわかっている場合:

$ vi myfile.c

ファイル名が不明で、入力を開始する場合:

$ vi

viを開くとすぐに、コマンドモードになります。挿入モードに入るには、iを押します。好きなように入力してください。 Escキーを押して、コマンドモードに戻ります。 viを開いた方法に応じて、終了するいくつかのオプションがあります。

ファイル名を指定した場合::wはこれらの変更を安全にディスクに書き込みます。 :qはエディターを終了します。これらのアクションは、:wqおよびReturnキーと組み合わせることができます。

ファイル名を指定しなかった場合::wq filename.cは、ファイルfilename.cに内容を書き込み、エディターを終了します。書いたテキストに興味がなく、何も保存せずに終了したい場合::q!そしてあなたは外出している! !最後に言う必要があります:「はい、内容を保存したくないので、すぐに出たいと思います」

行くぞ!最初のviファイルを作成、編集、保存しました(またはそうでない場合もあります)。おめでとう

前述したように、これは初心者向けのVI(m)の紹介ではありません。開始するには、他にもたくさんの記事があります(記事の最後で参照します)。このイントロを挿入したので、このページにアクセスして何も学ばなくても失望することはありません

これは、初心者が中級ユーザーに別れを告げる行であり、より素晴らしいイントロ記事のリファレンスセクションに進みます。

中間ユーザーへようこそ。これらは、私が知らなかったVI(m)の優れた機能です。しかし、今では私はそれらをより生産的にするために毎日使用しています。

TL; DRを好む方へ:

  • タブページ
  • セッション
  • 行番号(+マーク)およびコピー/貼り付け
  • ひだ
  • =のインデント
  • 挿入完了
  • netrw
  • 分割/ウィンドウ
  • :!そして:makeについて少し

Vimのタブページ

Vimでタブについて言及しましたか?私はそれが存在することを知りませんでした!

私は当然知っている!タブページは、上部にラベル(タブ)が付いた1つ以上のウィンドウを持つページです。

ウィンドウ、バッファ、タブページについて詳しく知りたい場合:技術的な詳細

ご覧ください:

動作中のVimタブ

手順:

  • 任意のファイルまたはVimのみでVimを開きます:$ vim file1
  • ファイルの内容を入力し、コマンドモードに入ります(Escを押します)
  • :tabedit file2、新しいタブを開き、file2を編集するように指示します
  • :tabedit file3、新しいタブを開き、file3を編集するように指示します
  • これらのタブ間を移動するには、通常モードで「gt」または「gT」と入力して、それぞれ次のタブまたは前のタブに移動します。 {i} gtを使用して、特定のインデックスタブ(1からインデックス付け)に移動することもできます。ここで、iはタブのインデックスです。例:2gtは2番目のタブに移動します
  • 最初のタブまたは最後のタブに直接移動するには、コマンドモードで次のように入力します。最初のタブまたは最後のタブに対してそれぞれ:tabfirstまたは:tablastを入力します。前後に移動するには::tabnで次のタブを、:tabpで前のタブを
  • :tabsを使用して、開いているすべてのタブを一覧表示できます。
  • タブで複数のファイルを開くには:$ vim -p source.c source.h
  • 単一のタブを閉じるには:tabclose、現在のタブ以外のすべてのタブを閉じるには:tabonly。接尾辞を使用してください!未保存のファイルの変更を上書きするには

この機能により、タブ間でバッファを共有し、タブ間で貼り付けをコピーして、作業カテゴリに異なるタブセットの複数のセッションを保持できるため、時間を効果的に節約できると思います。例:ソースコードCファイルのみのすべてのVimタブを持つターミナルタブと、ヘッダーファイル(.h)のすべてのVimタブを持つ別のターミナルタブを持つことができます。

タブは、すべてのファイルを開いたままにして、必要なときにアクセスできるように非常に便利です。ただし、端末を再起動したり閉じたりして開くたびにすべてのタブを開くのは面倒ではありませんか?

右!私たちは皆、一連のファイルを扱う独自の作業セッションを持ちたいので、Vimにそのセッションのタブを元の状態に復元したいと考えています。
Vimでは、これらのタブセッションを保存および復元できます。

手順:

  • 使用したいタブをいくつでも開きます
  • 任意のタブから、Escを押してコマンドモードに入ります
  • :mksession header-files-work.vimと入力してEnterキーを押します
  • 現在開いているタブのセッションは、header-files-work.vimファイルに保存されます。
  • 復元の動作を確認するには、すべてのタブとVimを閉じます
  • $ vim -S header-files-work.vimを使用してセッションでvimを起動するか、他のファイルでvimを開き、コマンドモードを入力して、:source header-files-work.vimおよびBOOM!保存したとおりにすべてのタブが開きます!
  • セッションタブを変更した場合(新しい/閉じる)、: mks!を使用して保存できます。セッション中に

行番号を知らなくてもコピー/貼り付けできますか?

そうそう!以前は、コピー/カットしたい関数の行番号(:set nu)を表示していました。 34〜65行目をコピー/カットしたいとします。:34,65y(コピー/ヤンク)または:34,65d(カット/削除)を使用しました。

もちろん、行をカウントして{n} yyまたは{n} dd(nは行数)を使用することは、数百行のオプションではありません

複数のページにまたがるいくつかの機能が存在する可能性があり、最初の行番号が何であるかを忘れるためだけに下に行きたくない。行番号について何も心配せずにこれを達成する簡単な方法があります!

手順:

  • 通常モードに入り、開始行に移動します
  • mkと入力します(アルファベット「k」でポイントをマークするか、他のアルファベットを使用します)
  • 下に移動し(ページを下に移動するなど)、最後の行に移動します
  • y'kは、すべての行を最初から最後までヤンク/コピーします
  • d'kは、最初から最後まですべての行をカット/削除します

ファイルの上部に迷惑な長い機能があり、スクロールや行へのジャンプに時間を無駄にしたくありません。これはIDEではないため、多くの質問がありますが、万が一コードブロックを折りたたむことはできますか?

絶対に!これらの行番号を思い出すことをスキップして、新しく見つけた愛*マーカー*で歩き回るとしましょう。関数本体の先頭に移動して、mbと入力します。ここで、%(ブレースマッチング)またはその他の便利な手法を使用して関数本体の最後に移動し、zf'bを押すだけで完了です。

前後:

ビフォアーアフター

行番号の使用に慣れている場合、コマンドは覚えやすくなります::5,16fo(foはコードフォールドを表します)。コードを折り畳んだ後、zo(コードフォールドを開く)とzc(コードフォールドを閉じる)を使用して、開いているビューと閉じているビューを簡単に切り替えることができます。あまり強調しないでください。 zaを使用して、開いた状態と閉じた状態を切り替えます

大きなファイルで関数を折り畳むのにかなりの時間を費やしたとしましょう。明らかに、そのファイルを開くたびにそれらの折り畳みを保持したいでしょうか? (そうでない場合、なぜあなたはそれらを折り畳むあなたのエネルギーを無駄にしたのですか!?)ので、あなたの〜/ .vimrcに正しい解決策があります。 〜/ .vimrcに次の行を挿入すると、コードの折りたたみが保存および復元されます。

autocmd BufWinLeave *。* mkview
autocmd BufWinEnter *。* silent loadview

私は通常、インデントに注意しますが、時には他のバカのソースコードを編集する必要があり、インデントなしで彼/彼女のコードを編集するとバグが発生します。それを実現する魔法のキーストロークはありますか?

もちろん! = i {と同じくらい簡単です。本当にそれだけです! (iは内部オブジェクトです)

ビフォアーアフター:

ビフォアーアフター

あなたがしなければならないのは、インデントしたいブロック内のどこかにカーソルを置き、Escを押して通常モードに入り、それから= i {です。ブーム!関数本体全体(内部ブロックを含む)がインデントされます。

注:Pythonファイルのインデントを期待しないでください。 Vimが開き括弧と閉じ括弧を使用して開始と終了を識別できる場合にのみ機能します)

:i {を使用してブロック内のインデントを増減し、通常モードで

私は夢を見ているかもしれませんが、(*四分音色*)、試してみたいだけです、うーん、これで本当に遠くまで押しているかもしれませんが、(* 5秒の休止*)。次の質問に

Vimは、批判をしたり、IDEではないという事実に直面したりするために、非常にオープンマインドです。先に進んで、あなたが持っているものを見てみましょう。

うーん、申し訳ありませんが、万が一プラグインなどで(*パンティング*)、vimにはIDEのようなオートコンプリートがありますか?

surpriseびっくりするかもしれませんが、そうです! そして何を…
*ドラムロール*
*ドラムロール*
*ドラムロール*
*ドラムロール*

プラグインなし!

あなたは私を正しく聞いた! Vimがオプションを表示するための唯一の条件は、「Vimはあなたが話していることを知っている必要があります」です。これは、含まれているソースファイルまたは定義済みの関数または変数を介する場合があります。

入力を開始してから、挿入モードでCtrl + nを押すだけです。

C、Python、Javaの例

用途を想像してみてください!特に、Cコードを記述していて、正確なOpenSSLライブラリ呼び出しを思い出せない場合は、ヘッダーを含めるだけです!

OpenSSL機能をサポートするVimオートコンプリート

もう一度思い出させてください:プラグインは不要です

注:ヘッダーファイルはMacの他の場所にあり、Vimはそれらを見つけることができない場合があります。 Macを使用してLinuxマシンにログインするだけです。したがって、Macを使用している場合は、ごめんなさい。

Vimは単なるテキストエディターであることを理解していますが、フォーカスを失い、時々Vimを終了せずに作業したい場合、すべてのファイル名を思い出せない場合、どのようなオプションがありますか?

シンプル、VIMが提供するファイルエクスプローラーを使用するはい、Vimはシンプルなファイルエクスプローラーを提供します(*プラグインなし*)。 Vimウィンドウから:Exploreと入力するだけで、navigate️および矢印キーを使用してナビゲートできる、簡単にナビゲートできるファイルエクスプローラーが表示されます。 Enter / Returnキーを押して、ファイル/ディレクトリを開きます。 :qを使用して、エクスプローラーとvimを終了します。 vimを終了せずに開いているファイルで作業を続行したくない場合、3つのオプションがあります。

  1. エクスプローラーを水平(:Sexplore)または垂直(:Vexplore)分割で開き、:qを使用してエクスプローラーを終了します
  2. :Texploreを使用して別のタブページでエクスプローラーを開き、:qを使用して終了します
  3. 現在のウィンドウでファイルエクスプローラーを開き、現在のバッファーをアンロードし、:bdel(バッファー削除)を使用してバッファーリストから削除します。
:任意のvimウィンドウから検索すると、ファイルエクスプローラーが表示されます
注:短いコマンド:Exを使用してファイルエクスプローラーを開くこともできます

時々、何かを編集するためにいくつかの行で同じ手順を繰り返さなければなりません。 Vimにはこれを可能にする機能があると確信しています。私は正しいですか?

100%正しい!マクロについて話しているので、Vimはマクロをサポートしています。最後に実行されたコマンドを繰り返すことは簡単で、簡単な繰り返しタスクを実行できます。ただし、テキスト処理が結果を得るためのいくつかのステップで構成されている場合、マクロが役立ちます。

Cヘッダーファイルの例を考えてみましょう。

void encrypt_text(char * text、int bytes)
void decrypt_text(char * text、int bytes)
void process_text(char * text、int bytes)
void another_important_function(intバイト、倍精度)

おっとっと!あなたは各行の終わりにセミコロンを置くのを忘れていました、そしてまた、これらすべての関数がvoidの代わりに整数エラーコードを返すことに気づきました。

1行で変更を行うために実行する必要がある手順は次のとおりです。

  • 単語voidの先頭にカーソルを置きます
  • 通常モードでcwを押してvoidという単語を削除し、intと入力します
  • Escを押し、Shift + aを使用して挿入して行末に移動します。
  • Escキーを押して^キーを押すと、編集した行の先頭に戻ります

その結果:

int encrypt_text(char * text、int bytes);
void decrypt_text(char * text、int bytes)
void process_text(char * text、int bytes)
void another_important_function(intバイト、倍精度)

この一連のステップを記録して、4行すべてで再生できます。

シーケンスを開始する前に、通常モードでqaを押して任意のアルファベット(aとしましょう)でマクロの記録を開始するだけです。これで、ステップがに記録されます。すべてのステップが完了したら、通常モードでqを押すだけです。これで記録が終了します。これらのステップを再生するには、カーソルをマクロ中に置かれたのと同じ場所に置いてください。 @aを押すと完了です!ブーム! Vimはその行で同じ手順を繰り返します!複数行で繰り返すには、@ aコマンドを1回使用した後に@@を使用することもできます

私はVimがIDEにどこにも近くないことを知っています、そして私はいくつかの不合理な希望を持っているかもしれませんが、簡単な質問:Vimで可能なファイルのリモート編集?

利用可能なリソースを考慮して考える場合:
[1] Vim
[2] openssh-client(ほとんどのLinuxフレーバーでインストールされます)

あなたは私の友人に運があります!はい、Vimはファイルのリモート編集をサポートしています
Vimは、openssh-clientが提供するscp(セキュアコピー)によって確立されたセキュアな接続を利用するだけです。複数のリモートマシンでファイルを操作している場合があり、1つのファイルを編集するためだけにマシンにログインするのは時間の無駄です。リモートマシンの資格情報とパスを知っているだけであれば、現在のマシンでリラックスできます。

vim scp:// remoteuser @ remote_IP_or_hostname / relative / path / of / file

たとえば、/ home / dev-john / project / src / main.cに保存されている10.0.18.12のファイルを編集する必要があり、dev-johnのログイン資格情報がある場合、次を使用してmain.cにアクセスできます。

$ vim scp://dev-john@10.0.18.12/project/src/main.c

dev-johnのホームディレクトリからファイルの検索を開始できるため、相対パスを使用できます。

ヒント:リモートマシンに頻繁にアクセスする場合は、ssh構成ファイルを作成して、接続のショートカットを作成できます。 〜/ .ssh / configファイルを作成します

ホストremote-dev-machine
    ホスト名10.0.18.12
    ユーザーdev-john
    IdentityFile〜/ .ssh / id_rsa

これで、次を使用してファイルにアクセスできます。

$ vim scp://remote-dev-machine/project/src/main.c

相対パスを覚えるのがわかりにくく、直感的でない場合は、別の方法で指定することもできます。

$ vim scp://remote-dev-machine/~dev-john/project/src/main.c

驚くばかり! Vimのすぐに使える機能にすでに興奮しています。多くの一般的な編集の問題を解決したようです。どれどれ。 2000行を超えるファイルがあり、興味のある機能は9行、768行、1898行にあります。行番号を使用して行にジャンプできることは知っていますが、これらの番号を覚えるのはあまり得意ではありません。私のために何かを得ましたか?

ええええ!探しているのは、文字を使用したVimのローカルブックマークソリューションです。あなたがしなければならないのは:

  • 任意の位置の任意の行にカーソルを置きます
  • Escを押して、通常モードになっていることを確認します
  • m {lowercaseletter}を押します。{lowercaseletter}はa〜zの任意の文字です
  • ファイル内を移動するためのローカルブックマークを作成しました

すべてのブックマークを表示するには:Escを押してコマンドモードに入り、:marksと入力してEnter / Returnを押します。ブックマークのリストが表示されます。いつでもブックマークにアクセスするには、Escキーを押して「{lowercaseletter}」と入力します。 Kaboom!ブックマークした場所とまったく同じ場所に到着します。例:

Vimのブックマーク

を使用して、21行18列にローカルブックマークを作成しました。 1783行目で編集している場合は、Escキーを押して「a」と入力します。

問題を解決するには、3つのローカルブックマークを作成し、:marksを見てそれらにすばやくジャンプします。

問題解決Problem

グローバルブックマークも作成できると言ったらどうなりますか?! はい、グローバルブックマークも作成できます!これらは、実際のリンクを作成する必要がないことを除いて、ウィンドウまたはGUIショートカット(またはLinuxソフト/ハードリンク)と同等です。あなたは私を正しく聞いた! / dir1のファイルの編集から、終了せずにVimから/ project / src /の別のファイルと行に文字通りジャンプできます!

大丈夫、覚えておくべき大きな新しいことではありません。あなたがしなければならないのは:
グローバルブックマークを作成するには、小文字ではなく大文字を使用します。それで全部です!本当に!同じプロセスを使用して、グローバルブックマークに移動します。例:mPを使用してブックマークを作成した場合は、Escキーを押して「P and BAM!」と入力するだけです。グローバルブックマークにジャンプします(Vimはパスを記憶しているため、パスについて何も入力する必要はありません)

local::marksと同じ方法でグローバルブックマークにアクセスできます。

:マーク
マーク行colファイル/テキスト
 P 53 4〜/ project / src / large-file.c
 A 11 0〜/ project / README.md

注:カーソルの位置に興味がなく、ブックマークした行の先頭にだけ配置したい場合は、 `Pの代わりに 'Pを使用します(バックティックの代わりに単一引用符を使用して行の先頭に配置します)

Vimはウィンドウの分割とタブをサポートしていると聞きました!タブは素晴らしく、複数の開いているファイルを一度に操作できることを理解しています。しかし、分割についてはどうですか?なぜそれが欲しいのですか?

シナリオ:

  • 別のファイルを同時に表示してファイルを編集することもできます(ヘッダーファイル内の宣言を見てC関数を定義している可能性があります)
  • 同じファイルの上部/下部を同時に見て、ファイルの一部を編集したい場合があります
  • 作業中に、異なるファイルの異なる部分を同時に見ることにより、ファイルを編集する必要がある場合があります

Vimは、画面の水平方向と垂直方向の分割をサポートしています。さらに良いことに、画面を分割するときにファイルシステムを参照してファイルを開くこともできます。

利用可能なオプションは次のとおりです。

:split filename-ウィンドウを水平方向に分割し、ファイル名をロードします
:vsplitファイル-垂直分割およびオープンファイル
ctrl-w上矢印-カーソルをウィンドウの上に移動
ctrl-w ctrl-w-別のウィンドウにカーソルを移動(サイクル)
ctrl-w _-現在のウ​​ィンドウを垂直方向に最大化します
ctrl-w | -現在のウ​​ィンドウを水平方向に最大化する
ctrl-w =-すべて同じサイズにする
:sviewファイル-splitと同じですが、読み取り専用
:close-現在のウ​​ィンドウを閉じる
通常のウィンドウ(左上)、: split <ファイル>(右上)、: vsplit <ファイル>(下)

作業ウィンドウを最大化する:

ウィンドウ全体を占めるには、ペインを垂直および水平に最大化する必要があります

サイズ変更:

CTRL-W [N]-現在のウ​​ィンドウの高さをN減らす(デフォルトは1)
CTRL-W [N] +現在のウィンドウの高さをN増加(デフォルトは1)
CTRL-W [N] <現在のウィンドウ幅をN減らす(デフォルトは1)
CTRL-W [N}>現在のウィンドウ幅をN増加(デフォルトは1)

ペインを分割しているときにファイルエクスプローラを使用する方法はありますか? (常にファイル名を覚えて入力することはできません!)

もちろん、あなたがしなければならないことは、水平ファイルエクスプローラーの場合は:Sexplore、垂直ファイルエクスプローラーの場合は:Vexploreだけです。 :Vexplore!も使用できます。 (デフォルトの左ではなく)右側でファイルエクスプローラーを開く

繰り返しますが、これはすべて*追加のプラグインなしで動作します*

いくつかのコードを編集している最中で、すぐにシェルコマンドを実行する必要があります。作業を保存し、Vimを終了してコマンドを実行する必要がありますか? Vimにはもっと良い方法があるに違いない

あなたは賭けます! Vimは、Vimを離れることを望んでおらず、作業に集中し続けることを望んでいます。したがって、Vim内からシェルコマンドを実行するオプション。心配しないでください。保存されていない作業はすべて破棄されず、コマンドとBAMを実行するだけです。未保存/保存済みファイルに安全に戻っています!

コーディングセッションの途中で、署名を忘れたため、ファイル操作のマニュアルページを見るためにすぐに出かける必要があるとしましょう。作業を保存してVimを終了してからmanページを確認したり、manページのためだけに別のタブを開いたりする必要はありません。 Vimエディター内から直接コマンドを発行できます。

左から右(Vimからシェルコマンドを実行し、エディターに戻る)

何だと思う!びっくりする準備をします。 Vimはファイル内からのmakeコマンドもサポートしています! Makefileを使用してディレクトリに移動するだけです。任意のファイル(ソースコードである可能性があります)を開き、すべての変更を行って保存します。待って、コンパイル結果を見るために終了する必要はありません。 Vim内からmakeビルドをトリガーできます。

Vimからmake buildをトリガーする

同様に、Makefileで他のターゲットをビルドできます!

例:ビルドディレクトリのクリーンアップ

VIMのmakeコマンドを使用したディレクトリのクリーニング

これらのクールな機能が、Vimの生産性向上に役立つことを願っています。

あなたのフィードバックはいつでも歓迎です。

気軽にコメント、批判、または拍手

参照:

  • http://www.openvim.com/tutorial.html
  • https://linuxconfig.org/vim-tutorial
  • ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
  • http://vim.wikia.com/wiki/Tutorial
  • http://www.viemu.com/a-why-vi-vim.html
  • http://robertames.com/files/vim-editing.html
  • https://www.youtube.com/watch?v=wlR5gYd6um0