GNU/Linux >> Linux の 問題 >  >> Linux

これらのクールな機能でVimをさらに素晴らしいものにする

Vim これは、すべてのLinuxディストリビューションの非常に重要な部分であり、Linuxユーザーにとって(もちろんターミナルの後の)最も便利なツールです。少なくとも、この理論は私には当てはまります。プログラミング作業を非常に簡単にするさまざまなIDEやSublimeText3、Atomなどの他の洗練されたテキストエディタがあるため、プログラミングにはVimは適切ではないかもしれないと人々は主張するかもしれません。

私の考え

しかし、私が思うに、Vimは最初から私たちが望むように動作しますが、他のエディターは、実際に動作させたい方法ではなく、設計された方法で動作させます。他のエディターについてはあまり使用していないため、あまり言えません(Vimに偏っています)。

とにかく、Vimから何かを作りましょう。それは本当にジョブの神をうまくやってくれます。

VimforProgramming

コードの実行

シナリオを考えてみましょう。VimでC++コードを処理していて、それをコンパイルして実行する必要がある場合に何をしますか。

(a)。 (Ctrl + Z)を使用してターミナルに戻るか、保存して終了します(:wq)。

(b)。そして、問題は解決していません。ターミナルで{g++fileName.cxx}のようなものを入力する必要があります。

(c)。その後、{./a.out}。

と入力して実行します。

確かに、C ++コードをシェル上で実行するには、多くのことを行う必要がありました。しかし、これを行うのはVimの方法ではないようです(Vimは常にほとんどすべてを1〜2回のキー押下で維持する傾向があるため)。それで、このようなことをするVimの方法は何ですか?

The Vim Way

Vimは単なるテキストエディタではなく、テキストを編集するための一種のプログラミング言語です。そして、Vimの機能を拡張するのに役立つプログラミング言語は「VimScript」です。したがって、VimScriptを使用すると、キーを押すだけでコードのコンパイルと実行のタスクを簡単に自動化できます。

上記は、CPP()という関数を作成した.vimrc構成ファイルの抜粋です。

VimScriptでの関数の作成

VimScriptで関数を作成するための構文は非常に簡単です。キーワード「機能」で始まります 」の後に関数名が続きます[関数名はVimScriptでは大文字で始まる必要があります。そうでない場合、Vimはエラーになります]。また、関数の終わりはキーワード「 endfunc」で示されます。 」。関数の本体には、 execが表示されます。 ステートメント、execキーワードがVimのコマンドモードで実行された後に書き込むものは何でも(Vimのウィンドウの下部にある:で始まるものを覚えておいてください)。さて、私が幹部に渡した文字列は–

この関数が呼び出されると、最初にターミナル画面がクリアされ、表示されるのは出力だけになります。次に、作業中のファイル名に対してg ++が実行され、その後、作成されたa.outファイルが実行されます。コンパイル。Ctrl+rをマッピングしてC++コードを実行
————————————————————-
ステートメントをマッピングしました:call CPP()キーの組み合わせ(Ctrl + r)に変更すると、Ctrl + rを押して、手動で:call CPP()と入力してEnterキーを押すことなく、C++コードを実行できるようになります。

最終結果

私たちはついにそのようなことをするVimの方法を見つけることができました。これで、ボタンを押すだけでC ++コードの出力が画面に表示されるので、それほど長いものを入力する必要はありません。時間の節約にもなります。

他の言語でもこの種の機能を実現できます。

つまり、Pythonの場合:を押してコードを解釈できるようになりました。

Javaの場合:を押すと、最初にJavaコードがコンパイルされ、次にJavaクラスファイルが解釈されて出力が表示されます。

写真は終わっていない、深いレベルの行進

だから、これはあなたがVimであなたのやり方で働くために物事を操作する方法についてのすべてでした。さて、Vimでこれらすべてを実装する方法について説明します。これらのコードスニペットはVimで直接使用でき、その逆はVimのAutoCommands(autocmd)を使用することです。 autocmdの利点は、これらのコマンドをユーザーが呼び出す必要がなく、ユーザーが指定した特定の条件で自分で実行できることです。

この[autocmd]でやりたいのは、さまざまなプログラミング言語でコードの実行を実行するためにさまざまなマッピングを使用するのではなく、すべての言語で実行するための単一のマッピングが必要なことです。

ここで行ったことは、コードを実行するための関数を持っているすべてのファイルタイプに対して自動コマンドを作成したことです。

上記のファイルタイプのいずれかのバッファを開くとすぐに、Vimは自動的に(Ctrl + r)を関数呼び出しにマップし、はEnterキーを表します。 を押すたびに「Enterキー」を押す必要はありません。だけで作業できます。

この機能を実現するには、関数スニペットを[dot] vimrcに追加し、その後、それらすべてのautocmdを配置する必要があります。これで、次にVimを開いたときに、Vimには、まったく同じKeyBindingsですべてのコードを実行するためのすべての機能があります。

結論

それは今のところすべてです。このことがあなたのVimをさらに愛してくれることを願っています。私は現在、Vimで物事を調査し、ドキュメントなどを読み、[。vimrc]ファイルで追加を行っています。皆さんと共有できる素晴らしいものがあれば、また連絡します。

現在の[.vimrc]ファイルを確認したい場合は、Githubアカウントへのリンクを次に示します:MyVimrc。


Linux
  1. Linuxでコンピューターをよりアクセスしやすく持続可能なものにする

  2. これらのヒントを使用して、Bashの履歴をより便利にします

  3. Vim:+ xビットでファイルを作成しますか?

  1. VimをTmuxで適切に動作させる方法は?

  2. du -h 小数点以下の桁数を増やす

  3. `vim` で .jar を編集する

  1. Linuxの基本:vimを使用したテキスト編集の初心者向けガイド

  2. コマンド例を含むvimチュートリアル

  3. Vim でディレクトリ内のファイルの名前を変更できますか?