Vim-quick-guide
Vim-はじめに
Vimエディターは、今日使用している人気のあるテキストエディターの1つです。 これはViエディターのクローンであり、Bram Moolenaarによって作成されました。 クロスプラットフォームエディタであり、Windows、Linux、Mac、およびその他のUNIXバリアントなどの最も一般的なプラットフォームで使用できます。 この章では、次の項目について説明します-
- 前書き
- Vimの機能
- Vimが作成された理由
前書き
Vimは* Vi IM *の頭字語です。 Bram Moolenaarによって書かれた無料のオープンソーステキストエディターです。 UNIXバリアント用に1991年に最初にリリースされ、その主な目標は、1976年にリリースされたViエディターを強化することでした。
VimはクローンViエディターと見なされます。 Viと同様に、コマンド中心のエディターでもあります。 Vimを学習する利点の1つは、どこでも利用できることです。 Linux、Mac、HP-UX、AIXなどのUNIXバリアントを使用してください。デフォルトではVimがあります。 Vimには従来GUIがありませんが、現在はGUIを提供するgVimと呼ばれる別個のインストーラーがあります。
Vimの機能
このセクションでは、Vimの重要な機能のいくつかについて説明します-
- そのメモリフットプリントは非常に低いです
- コマンド中心です。 いくつかのコマンドで複雑なテキスト関連のタスクを実行できます
- 高度な設定が可能であり、シンプルなテキストファイルを使用して設定を保存します
- Vimには多くのプラグインがあります。 これらのプラグインを使用して、その機能を素晴らしい方法で拡張できます。
- 複数のウィンドウをサポートします。 この機能画面を使用すると、複数のウィンドウに分割できます
- 複数のウィンドウと同様に、複数のバッファもサポートします
- 複数のファイルで作業できる複数のタブをサポートしています
- Vimコマンドを繰り返して記録および再生できる記録機能をサポートしています
Vimが作成された理由
Vimは、1976年にBill Joyによって作成されたオリジナルのViエディターに基づいています。 90年代には、Viの背後には不足がありました。いわゆるエディター戦争は、ViとEmacsエディターの間に存在していました。 そのため、Bramは、EmacsコミュニティがVi/VimよりもEmacsの方が優れていた理由の議論として使用した多くの欠落機能を実装しました。
Vim-インストールと構成
Vimは軽量パッケージであり、そのインストールは本当に簡単です。 この章では、次の項目について説明します-
- Windowsプラットフォームでのインストール
- DebianベースのLinuxへのインストール
- RPMベースのLinuxへのインストール
Windowsプラットフォームでのインストール
Vimには特定の要件はありません。 すべての依存関係を提供するシンプルなソフトウェアバンドルです。
インストール
- Vimをダウンロードするには、https://www.vim.org/[vim.org]にアクセスしてください。
- 左ペインからダウンロードオプションをクリックします
- [PC-MS-DOSおよびMS-Windowsオプション]をクリックします
- このページから_.exe_インストーラーをダウンロードします。 このチュートリアルを書いている時点では、インストーラー名はftp://ftp.vim.org/pub/vim/pc/gvim80-586.exe[gvim80.exe]でした。
- インストーラーをダブルクリックし、画面の指示に従ってインストールを完了します
設定
Vimはその構成を単純なテキストファイル、つまり_vimrcに保存し、ユーザーのホームディレクトリの下にあります。
- 現在のユーザーのホームディレクトリを見つけるには、ターミナルで以下のコマンドを実行します-
$ echo %userprofile%
- ホームディレクトリに移動し、_vimrcという新しいファイルを作成します。 このファイルに拡張子がないことを確認してください。
- このファイルをテキストエディタで開き、次のテキストを入力して保存します-
set nu
- これで、Vimはファイルを開いたときに行番号を表示します。 後でこのファイルにオプションを追加します。
DebianベースのLinuxへのインストール
Linuxプラットフォームでのインストールは、Windowsと比較して非常に簡単です。 このセクションでは、DebianベースのLinuxでのインストールと設定について説明します。
インストール
- ターミナルで以下のコマンドを実行します-
$ sudo apt-get update
$ sudo apt-get install vim
- Vimが正しくインストールされていることを確認するには、以下のコマンドを実行します-
$ which vim
- Vimバイナリの場所を出力するはずです。 私の場合は-
/usr/bin/vim
設定
Vimはその構成を単純なテキストファイル(.vimrc)に保存し、ユーザーのホームディレクトリの下にあります。
- 現在のユーザーのホームディレクトリを見つけるには、ターミナルで以下のコマンドを実行します-
$ echo $HOME
- ホームディレクトリに移動し、.vimrcという新しいファイルを作成します。 このファイルに拡張子がないことを確認してください。
- このファイルをテキストエディタで開き、次のテキストを入力して保存します-
set nu
- これで、Vimはファイルを開いたときに行番号を表示します。 後でこのファイルにオプションを追加します。
RPMベースのLinuxへのインストール
このセクションでは、RPMベースのLinuxでのインストールと構成について説明します。
インストール
- ターミナルで以下のコマンドを実行します-
$ su -
$ yum install vim
- Vimが正しくインストールされていることを確認するには、以下のコマンドを実行します-
$ which vim
- Vimバイナリの場所を出力するはずです。 私の場合は-
/usr/bin/vim
設定
Vimはその構成を単純なテキストファイル(.vimrc)に保存し、ユーザーのホームディレクトリの下にあります。
- 現在のユーザーのホームディレクトリを見つけるには、ターミナルで以下のコマンドを実行します-
$ echo $HOME
- ホームディレクトリに移動し、.vimrcという新しいファイルを作成します。 このファイルに拡張子がないことを確認してください。
- このファイルをテキストエディタで開き、次のテキストを入力して保存します-
set nu
- これで、Vimはファイルを開いたときに行番号を表示します。 後でこのファイルにオプションを追加します。
Vim-友達です
Vimは元のViエディターのクローンです。 この章では、他のViクローンについて説明します。 この章の主な目的は、他のクローンと、元のViエディターとの互換性を知ることです。
この章では、次の項目について説明します-
- Vi
- スティービー
- エルビス
- nvi
- vile
- オリジナルのViとの互換性
Vi
ViはVisualの頭字語です。 これはもともとUNIX用に作成された画面指向のテキストエディターです。 Viの元のコードは、1976年にBill Joyによって作成され、BSDプラットフォームで最初にリリースされました。 Viは、当時最も一般的なedエディターの拡張機能でした。
Vimは、複数のモードを導入した最初のエディターです。 テキストの編集、テキストの選択、コマンドの実行には、個別のモードがあります。 Vimエディターはこれらすべてのモードをサポートします。 このチュートリアルの後半のセクションでは、これらのモードについて説明します。
スティービー
Stevieエディターは、Atari STプラットフォーム用に開発されました。 1987年にリリースされました。VIenthusiasticのST Editorの略語です。
これは非常にシンプルで、元のViエディターの非常に小さなサブセットのみを提供していました。 ただし、Atari STプラットフォームで移動するユーザーには使い慣れた環境を提供しました。
エルビス
エルビスの主な意図は、スティービーエディターの制限を取り除くことでした。 スティービーはファイル全体をRAMにロードするために使用していましたが、エルビスはバッファを導入することでこの制限を取り除きました。 また、構文の強調表示、複数ウィンドウのサポート、ネットワークのサポート、シンプルなGUIなどの機能を追加しました。
nvi
nviは新しいViの略です。 これは、カリフォルニア大学バークレー校のAT&Tラボとコンピューターサイエンスリサーチグループ(CSRC)間のライセンス紛争の結果でした。 Viはedエディターに基づいており、AT&Tのライセンスの下で、ViをBDSとともに配布することを制限していました。 したがって、彼らはViを書き直し、BSDライセンスの下でそれをリリースしました。
Vim
VimはViの改良版であり、Viが遅れていた多くの機能を追加しました。 次のような多くの便利な機能を追加しました-
- 複数のウィンドウ/タブ/バッファ
- Vimスクリプト言語の紹介
- 200を超える言語の構文強調表示
- コンパイラ、インタープリター、デバッガーとの統合
Vile
VileはEmacsのようなViを表す略語であり、両方のエディターから人気のある機能を1つにまとめる試みでした。 Vileの一般的な機能はほとんどありません-
- ファイルの種類ごとに1つの編集モード
- Vile手続き言語の紹介
- ユーザーの選択に従ってキーをバインドする名前付き関数
Vioriginal Viとの互換性
上記のエディターはViクローンと見なされますが、元のViと100%互換性はありません。 以下の表は、互換性に関する詳細を示しています-
Clone | Vi compatibility | Notes |
---|---|---|
STEVIE | 10% | Limited features were common |
Vile | 10% | Limited features and Vi modes were common |
Elvis | 80% | Larger features were common |
nvi | 95% | Larger features were common |
Vim | 99% | Almost identical to Vi with some additional features |
Vim-慣れる
このセクションから始めて、Vimで手を汚します。 この章では、次の項目について説明します-
- Vimを起動
- Vimモード
- 新しいファイルを作成
- 読み取り専用モードでファイルを表示する
- 既存のファイルを編集
Vimを起動
Vimは、今日のGUIベースのエディターとは少し異なります。 GUIからも端末からも起動して使用できます。
グラフィカルランチャーを使用する
- グラフィカルランチャーからVimを起動するには、gVimアイコンをダブルクリックします。 次のようにエディタウィンドウが開きます-
ターミナルを使用
ターミナルからVimを使用する方法は、WindowsとLinuxプラットフォームで同じです。 次の手順を実行して、ターミナルからVimを起動および終了します-
- ターミナルを開き、次のようにvimコマンドを入力します-
$ vim
- 次のようにターミナルでVimを開きます-
- これを閉じるには、Escキーを押してからコロン(:)とqを押します。 Vimでは、qコマンドはquitの略です。 このコマンドは、エディタ自体の左下隅に表示されます-
Vimモード
Vimは複数のモードをサポートしています。 このセクションでは、日常的に使用されるいくつかの重要なモードについて説明します。
コマンドモード
これは、Vimが起動するデフォルトのモードです。 このモードでエディターコマンドを入力できます。 このモードでは、コピー、貼り付け、削除、置換など、さまざまなコマンドを使用できます。 これらのコマンドについては、後のセクションで説明します。
注-ここから先、コロンなしのVimコマンドは、コマンドモードでそのコマンドを実行していることを示します。
挿入モード
このモードを使用して、テキストを入力/編集できます。 デフォルトのコマンドから挿入モードに切り替えるには、iキーを押します。 エディターの左下隅に現在のモードが表示されます。
挿入モードになったら、任意のテキストを入力できます。 以下の画像はこれを示しています-
Escapeキーを使用して、このモードからコマンドモードに切り替えます。
コマンドラインモード
このモードは、コマンドの入力にも使用されます。 このモードのコマンドは、コロン(:)で始まります。 たとえば、前のセクションでは、このモードでquitコマンドが入力されました。 このモードには、コマンドモードまたは挿入モードからアクセスできます。
- コマンドモードからこのモードに切り替えるには、コロンを入力します
- 挿入モードからこのモードに切り替えるには、Escキーを押してコロンを入力します
下の画像の左下のコロンは、ラインモードを示しています。
注-以降、コロンで始まるVimコマンドは、コマンドラインモードでそのコマンドを実行していることを示します。
ビジュアルモード
このモードでは、テキストを視覚的に選択し、選択したセクションでコマンドを実行できます。
- コマンドモードからビジュアルモードに切り替えるには、vと入力します。
- 他のモードからビジュアルモードに切り替えるには、まずEscapeキーを押してコマンドモードに戻り、次にvを入力してビジュアルモードに切り替えます。
以下の画像では、左下隅が視覚モードを示しています。
新しいファイルを作成
新しいファイルを作成して保存するには、以下の手順を実行します-
- 次のコマンドを実行してVimを開きます
$ vim
- Vimで次のコマンドを入力します
:edit message.txt
- 挿入モードに切り替えます
i
- テキストを入力してください
- コマンドモードに戻る
Esc
- 変更をファイルに保存する
:w
これで、message.txtファイルが作成されます。
- Vimを終了
:q
読み取り専用モードでファイルを開く
-Rオプションを使用して、読み取り専用モードでファイルを開きます
$ vim -R message.txt
以下の画像では、左下隅が読み取り専用モードを示しています-
または、viewコマンドを使用して同じ結果を得ることができます。
$ view message.txt
既存のファイルを編集
既存のファイルを編集するには、以下の手順を実行します-
- Vimを使用してファイルを開く
$ vim message.txt
- 挿入モードに切り替えて、そこにテキストを入力します。
i
- 変更を保存せずにエディターを終了します
:q!
- 次のコマンドを使用して変更を保存し、エディターを終了します-
:wq
Vim-ヘルプの取得
Vimは機能が豊富なエディターであるため、それについてすべてを覚えることは困難です。 しかし、心配する必要はありません。いつでも助けを求めることができます。 幸いなことに、このヘルプはVim自体によって提供されます。
この章では、次の項目について説明します-
- ヘルプマニュアルにアクセス
- 特定のトピックに関するヘルプ
- マニュアルでヘルプフレーズを検索する
- オンラインヘルプにアクセスする
ヘルプマニュアルにアクセス
ヘルプマニュアルはVimエディター自体に同梱されており、非常に包括的なものです。 ヘルプにアクセスするには、以下のコマンドを実行します-
:help
特定のトピックに関するヘルプ
ヘルプマニュアルには、Vimに関するすべてのヘルプが表示されます。 しかし、もしも、特定のトピックのみに興味がある場合はどうでしょう。 Vimは次の構文で同様にコマンドを提供します
:help <topic-name>
上記のコマンドで、<topic-name>を関心のあるトピックに置き換えます。 vimモードに関するヘルプにアクセスするには、次のコマンドを実行します
:help modes
マニュアルでヘルプフレーズを検索する
特定のトピックを検索できるのは、その名前がわかっている場合のみです。 しかし、ヘルプトピックの正確な名前がわからない場合はどうでしょう。 その場合、以下のコマンドを使用できます-
:helpgrep <phrase>
たとえば、Vimのナビゲーションに関するヘルプにアクセスするには、以下のコマンドを実行します
:helpgrep navigation
オンラインヘルプにアクセスする
Vimはオンラインヘルプも提供します。 オンラインヘルプにアクセスするには-
- vim-help URLにアクセスします
- さらに、https://vim.sourceforge.io/docs.php [vim-docs]ドキュメントを参照することもできます
Vim-編集
Vimは、編集機能を非常に強力にする多くのコマンドを提供します。 この章では、次の項目について説明します-
- インサート
- 追加
- 新しい行を開く
- 代替
- 変化する
- 交換する
- Join
カーソルの前にテキストを挿入
カーソルの前にテキストを挿入するには、次の手順を実行します-
- カーソルの前にテキストを挿入するには、次の手順を実行します
- 挿入モードに切り替えます
i
行頭にテキストを挿入
あなたが行の真ん中にいて、現在の行の先頭にテキストを挿入して、次の手順を実行すると仮定します-
- コマンドモードに切り替える
Esc
- 挿入モードを有効にする
I
このアクションは、カーソルを現在の行の先頭に移動し、挿入モードでVimを切り替えます
カーソルの後にテキストを追加
カーソルの後にテキストを追加するには、次の手順を実行します
- コマンドモードに切り替えて、カーソルを適切な位置に移動します
Esc
- 挿入モードに切り替えます
a
このアクションはカーソルを次の位置に移動し、Vimを挿入モードに切り替えます。
行末にテキストを追加
あなたが行の真ん中にいて、現在の行の最後にテキストを追加したい場合は、次の手順を実行します-
- コマンドモードに切り替える
Esc
- 挿入モードに切り替えます
A
このアクションはカーソルを行末に移動し、挿入モードでVimを切り替えます
カーソルの下に新しい行を開く
あなたが行の真ん中にいて、現在の行の下に新しい行を開き、次の手順を実行すると仮定します-
- コマンドモードに切り替える
Esc
- 挿入モードに切り替えます
o
このアクションは、現在の行の下に空白行を挿入し、挿入モードでVimを切り替えます
カーソルの上に新しい行を開く
あなたが行の真ん中にあり、現在の行の上に新しい行を開き、次の手順を実行すると仮定します-
- コマンドモードに切り替える
Esc
- 挿入モードに切り替えます
o
このアクションは、現在の行の上に空白行を挿入し、挿入モードでVimを切り替えます
代替テキスト
私たちはあなたが単一の文字を置き換えて、次の手順を実行したいと仮定します-
- コマンドモードに切り替える
Esc
- カーソルを適切な位置に移動します
- 挿入モードに切り替えます
s
このアクションは、カーソルの下の文字を削除し、挿入モードでVimを切り替えます行全体を置き換えるには-
s
このアクションは行全体を削除し、Vimを挿入モードに切り替えます。
テキストを変更
現在の行のテキストを変更して、次の手順を実行するとします-
- コマンドモードに切り替える
Esc
- 次のコマンドを実行します-
cc
これは、Sを使用した代替アクションに似ています
現在のカーソル位置からテキストを変更するには、次のコマンドを実行します
C
このアクションは、現在のカーソル位置の後のテキストを削除し、挿入モードでVimを切り替えます。
テキストを置き換える
単一の文字を置き換えるには、次の手順を実行します-
- コマンドモードに切り替える
Esc
- カーソルを適切な位置に移動します
- 次のコマンドを実行します-
r
- 置換する文字を入力してください。
このコマンドは挿入モードではVimを切り替えないことに注意してください
行全体を置き換えるには、次を実行します-
R
以下の画像に示すように、置換モードでVimを切り替えます-
テキストに参加
2行を結合するには、次の手順を実行します-
- コマンドモードに切り替える
Esc
- カーソルを適切な行に移動します
- 次のコマンドを実行します-
J
Vim-ナビゲート
Vimは高度なナビゲーションを強力にサポートしています。 この章では、生産性の向上に役立つ一般的なナビゲーション手法のいくつかについて説明します。
基本的なナビゲーション
基本的なナビゲーションでは、位置ごとに上下左右にナビゲートできます。 これには以下のコマンドを使用できます-
Sr.No | Command & Description |
---|---|
1 |
h カーソルを左に1ポジション移動します |
2 |
l カーソルを1つ右に移動する |
3 |
k カーソルを上方向に1行移動します |
4 |
j カーソルを下方向に1行移動します |
マルチポジションナビゲーションを実行するには、これらのコマンドでnumberを使用します。 たとえば、現在の行から下の10行のカーソルをナビゲートするには、次のコマンドを実行します-
10j
残りのコマンドでも番号を使用できます。
これに加えて、以下のコマンドもいくつかの便利なナビゲーションを実行します。
Sr.No | Command & Description |
---|---|
1 |
0 カーソルを現在の行の先頭に移動します |
2 |
$ カーソルを現在の行の末尾に移動します |
3 |
Ctrl + f ページ全体を下にスクロール |
4 |
Ctrl + b ページ全体を上にスクロール |
行に移動する
以下のコマンドは、特定の行に移動するために使用できます-
Sr.No | Command & Description |
---|---|
1 |
:n n行目にジャンプ |
2 |
:0 ファイルの先頭にジャンプ |
3 |
:$ ファイルの最後にジャンプする |
単語ナビゲーション
私たちは単語のナビゲーションのために次のコマンドを使用することができます-
Sr.No | Command & Description |
---|---|
1 |
w 次の単語の先頭にカーソルを移動します |
2 |
e カーソルを現在の単語の末尾に移動します |
3 |
b 前の単語の先頭にカーソルを移動します |
ジャンプを使用する
Vimはジャンプリストを使用してナビゲーションを追跡します。 このリストを前後に移動できます。
ジャンプリストは、ファイル名、行番号、列番号を追跡することで、あなたが訪れたすべての場所を追跡します。
ジャンプリストを表示するには、次のコマンドを実行します-
:jumps
次のコマンドはジャンプリストに基づいています-
Sr.No | Command & Description |
---|---|
1 |
Ctrl + o 前の位置に戻る |
2 |
Ctrl + i 次の位置にジャンプする |
Vim-編集の再検討
以前に基本的な編集を見てきました。 Vimのその他の編集機能について理解しましょう。 このセクションでは、次の項目について説明します-
- バッファ
- スワップファイル
- アクションの切り取り、コピー、削除、貼り付け *元に戻すおよびやり直し
バッファ
バッファは、Vimが使用する一時メモリです。 エディターでファイルを開くと、Vimはその内容をディスクドライブから読み込みます。 これらのコンテンツは、実際にバッファからファイルを編集しているファイルを編集するたびに、メモリ(RAM)に保存されます。 編集を終了してファイルを保存すると、その時点でバッファの内容のみが適切なファイルに転送されます。
Swap
スワップ領域は、バッファの内容を定期的に保存するためにVimによって作成されたファイルです。 ファイルの編集中に何らかの理由で変更が失われる場合があり、Vimはスワップファイルを提供してデータを回復します。
スワップファイルの実際の名前を取得するには、次のコマンドを実行します-
:swapname
例えば私の場合、下の画像に示すように名前はmessage.txt.swpでした-
切り取り、コピー、貼り付けアクション
多くの場合、テキストに対して切り取り、コピー、貼り付けのアクションを実行します。 Vimはこれらのアクションを実行するために次のコマンドを提供します(yはヤンクを表し、pはペーストアクションを表します)-
Sr.No | Command & Description |
---|---|
1 |
カーソル位置から文字を削除 |
2 |
X カーソル位置から前の文字を削除 |
3 |
y カーソル位置から単一文字をコピー |
4 |
p カーソル位置の後に文字を貼り付けます |
5 |
P カーソル位置の前に文字を貼り付けます |
マルチポジションコマンド
切り取り、コピー、貼り付けのコマンドを単語や文章でも使用できます。 以下の表はこれを示しています-
Sr.No | Command & Description |
---|---|
1 |
dw カーソル位置から単語を削除 |
2 |
D カーソル位置から行全体を削除する |
3 |
dd 行全体を削除 |
4 |
Y 行全体をコピーします |
5 |
yy 行全体をコピーします |
複数行/複数単語のアクションを実行するには、コマンドで数字を使用します。 この構文は他のコマンドでも使用できます。 たとえば、3つの単語を削除するには、次を使用します-
3dw
Undo
単一または複数のアクションを元に戻すことができます。 一度だけ元に戻すアクションを実行するには-
u
複数の取り消しアクションを実行するには、同じコマンドでnumberを使用します。 たとえば、以下のコマンドは最後の3つのアクションを元に戻します-
3u
これに加えて、すべての実行を元に戻すには、次のコマンドを実行します-
U
Redo
やり直しは、元に戻すの適切なアクションです。 いずれかのコマンドを実行して、やり直しアクションを実行します。
Ctrl + r
OR
: red
Vim-検索
検索は非常に一般的なアクションであり、ほとんどの場合に使用するアクションの1つです。 この章では、これらのアクションを効果的に実行できるコマンドを紹介します。
この章では、次の項目について説明します-
- 検索設定
- 現在のファイルで検索
- 複数のファイルを検索する *ヘルプファイルを検索する
検索関連設定
インクリメンタル検索を実行するには、次のコマンドを実行します-
:set incsearch
検索を強調表示するには、次のコマンドを実行します-
:set hlsearch
このコマンドは、現在の一致を自動的に強調表示します。 たとえば、以下の画像ではキツネの単語が強調表示されています-
インクリメンタル検索および強調表示された検索を無効にするには、次のコマンドを実行します-
:set noincsearch
:set nohlsearch
現在のファイルで検索
順方向に検索
次のコマンドを使用して、順方向の検索を実行します-
Sr.No | Command & Description |
---|---|
1 |
/<expression> 順方向の検索式 |
2 |
n 次の出現箇所を見つけます。 これは同じで、次を見つける |
3 |
N 前の発生を検索します。 これは前の検索と同じです |
4 |
// // 前の前方検索を繰り返します |
逆方向に検索
次のコマンドを使用して、逆方向に検索を実行します
Sr.No | Command & Description |
---|---|
1 |
?<expression> 逆方向の検索式 |
2 |
n 前の発生を検索します。 これは同じで、以前のものを見つけます |
3 |
N 次の出現箇所を見つけます。 これは次を検索と同じです |
4 |
?? 前の後方検索を繰り返します |
カーソルの下の単語を検索
任意の単語の下にカーソルを置き、次のコマンドを実行して検索操作を実行します-
Sr.No | Command & Description |
---|---|
1 | 現在の単語の次の出現箇所を検索 |
2 |
# 現在の単語の前の出現を検索 |
複数のファイルを検索する
vimgrepコマンドを使用して、複数のファイルで<expression>を検索できます。 たとえば、以下のコマンドは、すべてのテキストファイルで文字列- Jarvis を検索します。
:vimgrep Jarvis *.txt
次と前の発生に移動するには、次のコマンドを使用する必要があることに注意してください-
Sr.No | Command & Description |
---|---|
1 |
:cn 次の式に移動します |
2 |
:cN 前の出現箇所に移動する |
Vim-working-with-multiple-things
Vim-マーカー
Vimはブックマーク機能をサポートしています。 この機能を使用すると、ファイル内のナビゲーションを非常に高速化できます。 この章では、次の項目について説明します-
- ブックマークを作成
- ブックマークにジャンプ
- すべてのブックマークをリストする
- ブックマークを削除する
- ローカルブックマーク *グローバルブックマーク
ブックマークを作成
ブックマークを作成するには、次のコマンドを実行します-
m{bookmark-name}
上記の例では、bookmark-nameは単一のアルファベット文字です。 たとえば、以下のコマンドはaという名前のブックマークを作成します。
ma
ブックマークにジャンプ
ブックマークが作成されたら、そこにジャンプできます。 次のコマンドを使用してブックマークにジャンプすることができます-
Sr.No | Command & Description |
---|---|
1 |
ブックマークの正確な場所に移動します。 この文字はバッククオートであることに注意してください |
2 |
‘{bookmark-name} ブックマーク行の先頭にジャンプします。 この文字は一重引用符であることに注意してください |
すべてのブックマークをリストする
すべてのブックマークをリストするには、次のコマンドを実行します-
:marks
下の画像では、現在のファイルのブックマークのリストが表示されています
ブックマークを削除
ブックマークを削除するには、次のコマンドを実行します-
:delmarks {bookmark-name}
たとえば、次のコマンドはaという名前のブックマークを削除します。
:delmarks a
ローカルブックマークとグローバルブックマーク
複数のファイルを開いており、開いているファイルの特定の位置に移動したい場合は、Vimのグローバルマーク機能を使用できます。
ブックマーク名が大文字の場合、それはグローバルブックマークです。 上記のコマンドは、ローカルブックマークとグローバルブックマークの両方に適用できます。
Vim-マクロ
マクロは記録および再生機能です。 これをVimコマンドと組み合わせると、本当に強力な組み合わせになります。 このセクションでは、次の項目について説明します-
- 録音開始
- Vimアクションを実行する
- 記録を停止
- 録音を再生する
録音開始
録音を開始するには、qを押してからマクロ名として小文字を押します。 たとえば、以下の例では、マクロ名として「a」を使用しています
Vimアクションを実行する
このステップでは、次のようなVimアクションを実行できます。カット、コピー、削除、置換など。これらのアクションは、次のコマンドを実行することで確認できます-
:registers
たとえば、以下のコマンドは、ヤンクおよび削除アクションが実行されたことを示しています-
記録を停止
アクションが完了したら、もう一度qを押して記録を停止します。 これで、録画モードは次のように消えます-
Play
再生するには、以下のコマンドを実行します-
@{macro-name}
たとえば、マクロ「a」を実行するには、以下のコマンドを実行します-
@a
同じマクロを複数回再生するには、数字を使用します。 たとえば、同じマクロを10回実行するには、次のコマンドを実行します-
10@a
Vim-レジスタ
Vimは多くのレジスタを提供します。 これらのレジスタを複数のクリップボードとして使用できます。 この機能は、複数のファイルを操作するときに非常に便利です。 この章では、次の項目について説明します-
- レジスタ内のテキストをコピー
- レジスタからテキストを貼り付ける
- 使用可能なレジスターをリストする
- レジスタの種類
レジスタ内のテキストをコピー
コピーには、通常のyankコマンド、つまり yyとレジスタに格納するために、次の構文を使用できます-
“<register-name><command>
たとえば、レジスタ「a」のテキストをコピーするには、次のコマンドを使用します-
“ayy
レジスタからテキストを貼り付ける
登録からテキストを貼り付けるには-
“<register-name>p
たとえば、次のコマンドはレジスタ「a」からテキストをコピーします-
“ap
使用可能なレジスターをリストする
使用可能なすべてのレジスタをリストするには、次のコマンドを使用します
:registers
レジスタの種類
Vimは次のタイプのレジスタをサポートしています-
名前のないレジスタ
名前のないレジスタは「」で示されます。 Vimは削除またはコピーされたテキストをこのレジスタに保存します
名前付きレジスタ
26個の名前付きレジスタを使用できます。 a-zまたはA-Zを使用できます。 デフォルトでは、vimはこれらのレジスタを使用しません。
小文字のレジスタ名を使用すると内容が上書きされ、大文字の名前を使用すると内容がそのレジスタに追加されます。
番号付きレジスタ
0〜9個の名前付きレジスタを使用できます。 Vimはこれらのレジスタをyankとdeleteコマンドからのテキストで埋めます。
- 番号付きレジスター0には、最新のyankコマンドからのテキストが入ります。 *番号付きレジスター1には、最新の削除または変更コマンドによって削除されたテキストが含まれています
デフォルトレジスタ
以下はデフォルトのレジスタです-
Sr.No | Register & Description |
---|---|
1 |
現在のファイルの名前 |
2 |
# 現在のウィンドウの代替ファイルの名前 |
3 |
: 最後に実行されたコマンド |
4 |
. 最後に挿入されたテキストが含まれています |
5 |
“ 最後に使用したレジスタ |
Vim-折りたたみ
折り畳み機能は、ファイルの内容が大きなテキストの場合に役立ちます。 この機能を使用すると、選択したファイルのポーションのみを表示できます。 この機能は、プログラミング言語での作業中に特に役立ちます。 この章では、次の項目について説明します-
- 折り畳み機能の有効化と無効化
- さまざまなフォールドアクション
折り畳みの有効化と無効化
フォールドをアクティブにするには、次のコマンドを使用します-
:set foldenable
:set foldmethod = indent
折り畳みを無効にするには、次のコマンドを使用します
:set nofoldenable
折りたたみアクション
折り目を閉じる
コードを折り畳むには、任意のメソッドに移動し、次のコマンドを実行します-
zc
以下の例では、このアクションの結果を示しています-
折り目を開く
フォールドを開くには、次のコマンドを使用します-
zo
以下の画像は、このアクションの結果を示しています-
すべての折り目を閉じる
すべての折り畳みを閉じるには、次のコマンドを実行します
zM
以下の画像は、このアクションの結果を示しています
すべて展開する
すべてを展開するには、次を実行します-
zR
以下の画像は、このアクションの結果を示しています-
Vim-差分
UNIX diffコマンドと同様に、Vimを使用してdiffをより適切に表示できます。 カラフルな方法で差分を表示します。 この章では、次の項目について説明します-
- ファイル間の違いを表示する
- 差分モードの有効化と無効化
- 差分モードでのナビゲーション
- 差分ウィンドウから変更を適用する
差を表示
ファイル間の違いを表示するには、以下のコマンドを実行します-
$ vimdiff <file> <file>
OR
$ vim –d <file> <file>
たとえば、以下のコマンドは違いを示しています-
上の画像では、マゼンタ色で強調されたテキストが一般的です。 残りのテキストは赤色で強調表示され、一般的なテキストの後にいくつかの違いがあることを示します。
差分モードの有効化と無効化
あなたがすでにvimにいて、diffアクションを実行したい場合は、次のコマンドのいずれかを使用します-
拡散する
以下のコマンドを使用して、水平分割を実行します-
:diffsplit filename
上の画像は、message-1.txtとmessage-2.txtの2つのファイルを比較していることを示しています。
垂直拡散
垂直分割を実行するには、次のコマンドを使用します-
:vert diffsplit <filename>
次のウィンドウが開きます-
上の画像は、message-1.txtとmessage-2.txtの2つのファイルを比較していることを示しています。
差分モードでのナビゲーション
差分モードでのナビゲーションは少し異なります。 たとえば、あるウィンドウのテキストをスクロールすると、隣接するウィンドウのテキストもスクロールします。 これはscrollbindと呼ばれます。 この使用を有効にするには-
:set scrollbind
この使用を無効にするには-
:set noscrollbind
このモードでファイルを編集する場合は、次のコマンドを使用して差分を更新します-
:diffupdate
差分ウィンドウを切り替える
差分ウィンドウを切り替えるには、次のコマンドを実行します-
Ctrl + w Ctrl + w
Ctrl + wを2回押す必要があることに注意してください。
前の変更にジャンプ
差分ウィンドウで、次のコマンドを実行して前の変更にジャンプします-
[c
次の変更にジャンプ
差分ウィンドウで、次の変更にジャンプするには、次のコマンドを実行します-
]c
差分ウィンドウから変更を適用する
現在の差分ウィンドウに変更を適用する
隣接する差分ウィンドウから現在の差分ウィンドウに変更を適用するには、次を実行します-
:diffget
たとえば、左側のウィンドウにいて、右側のウィンドウから現在のウィンドウに変更する場合は、上記のコマンドを実行します。
現在のペインから別のペインに変更を適用する
現在の差分ウィンドウから隣接する差分ウィンドウに変更を適用するには、次を実行します-
:diffput
たとえば、左側のウィンドウにいて、現在のウィンドウから右側のウィンドウに変更を適用する場合、上記のコマンドを実行します。
Vim-プラグイン
プラグインを使用して、Vimの機能を拡張できます。 Vimは多くのプラグインをサポートし、それらのほとんどは無料で利用できます。 この章はVimプラグインに関するもので、次の項目について説明します-
- プラグイン管理
- いくつかの便利なプラグイン
プラグイン管理
このセクションでは、プラグイン管理について説明します。 Vimにはさまざまなプラグインマネージャーが用意されていますが、プラグインマネージャーは使用しません。代わりに、理解を深めるためにこれらすべての手順を手動で実行します。 これらの手順を理解したら、プラグインマネージャーを使用できます。
プラグインをインストールする
プラグインをインストールするには、次の手順を実行します-
- ユーザーのホームディレクトリに.vim/bundleディレクトリを作成します
- このディレクトリ内にプラグインをコピーします
- vimでruntimepathを設定します
Vimにbadwolfプラグインをインストールしましょう。 vimの配色です。
$ mkdir -p ~/.vim/bundle
$ cd ~/.vim/bundle/
$ git clone https://github.com/sjl/badwolf.git
$ echo "set runtimepath^ = ~/.vim/bundle/badwolf" > ~/.vimrc
今プラグインがインストールされているので、次のようにbadwoldカラースキームを使用できます-
:colorscheme badwolf
プラグインを更新する
注意深く観察すると、プラグインは単なるファイルのコレクションであり、そのプラグインを更新する場合は、適切なプラグインディレクトリを〜/.vim/bundleから更新するだけです。
プラグインを削除する
Vimでプラグインを削除するのは本当に簡単です。 プラグインを削除するには、次の手順を実行します-
- 〜/.vim/bundleからプラグインディレクトリを削除します *runtimepathを適切に変更します
いくつかの便利なプラグイン
以下は、便利なVimプラグインのリストです
Sr.No | Name & Description |
---|---|
1 |
C/C ++コードを逆アセンブルします |
2 |
awk.vim AWKスクリプトのインデント |
3 |
Pathogen Vimパッケージマネージャー |
4 |
git-switcher.vim gitブランチの切り替えに基づいてvimセッションを自動的に保存およびロードします |
5 |
Pyflakes Pythonファイルの初期化を提供する |
Vim-VimをIdeとして使用する
IDEとして使用するようにVimを構成できます。 このセクションでは、次の項目について説明します
- 構文の強調表示
- スマートインデント
- バウンス
- シェルコマンドを実行する
- ctagsおよびcsopeの構成
- 自動補完と自動提案
構文の強調表示
構文の強調表示は、IDEの重要な機能の1つです。 構文の強調表示を有効にするには-
:syntax on
たとえば、以下の画像はCコードの構文強調表示を示しています-
構文の強調表示を無効にするには-
:syntax off
構文の強調表示が無効になっている場合、次の出力が表示されます-
スマートインデント
自動およびスマートインデントを実行するには、次のコマンドを使用します-
: set autoindent
: set smartindent
これに加えて、以下のコマンドを使用してCコードを自動インデントすることができます-
: set cindent
バウンス
中括弧を使用して複数のステートメントを結合するプログラミング言語を使用している場合、%keyがあなたの友達になります。 このキーは、中括弧の開始と終了の間をすばやくジャンプします。
たとえば、11行目で%コマンドを実行すると、カーソルが4行目に移動します。 以下の画像はこれを示しています-
シェルコマンドを実行する
Vimエディターユーザーから単一のコマンドを実行するには-
:!<command>
たとえば、pwdコマンドを実行するには、次の構文を使用します-
:!pwd
ただし、複数のシェルコマンドを使用する場合は、次のコマンドを実行します-
:shell
上記のコマンドは、複数のコマンドを実行できるターミナルアクセスを提供します。 完了したら、exitコマンドを入力するだけでVimセッションに戻ります。
ctagsおよびcscopeを構成する
ctagsとcsopeの組み合わせは、関数定義への移動、関数宣言への移動、関数呼び出しの検索、ファイルの検索など、多くの便利な機能を提供します。 これらのツールを設定するには、以下の手順を実行します-
- 次のコマンドを使用してタグを生成します-
$ ctags <file>
このコマンドは、新しいファイル、つまりタグを生成します
- 次のコマンドを使用してvimにタグファイルを提供します-
:set tags = tag
- 関数名の下にカーソルを移動し、Ctrl +]を押して関数定義に移動します。
- Ctrl + t を使用して、前の位置に戻ります。
cscopeをインストールして構成するには、次の手順を実行します-
- cscopeをインストールする
$ sudo apt-get install cscope
- ctagsを生成し、メインウィンドウを起動します
$ cscope –R
*ユーザーCtrl + dを押してcscopeウィンドウを閉じます
自動補完と自動提案
自動補完には次のコマンドを使用できます-
Sr.No | Command & Description |
---|---|
1 |
単語補完 |
2 |
Ctrl + x Ctrl + L ライン補完 |
3 |
Ctrl + x Ctrl + F ファイル名補完 |
これらのコマンドは挿入モードで使用する必要があることに注意してください。
Vim-リモートファイル編集
多くの場合、リモートサーバーで作業する必要があります。 多くの場合、これらのリモートサーバーからファイルを編集します。 これらのファイルを編集する明らかな解決策の1つは、リモートサーバーにログインしてファイルを編集することです。 ただし、ローカルシステムにさまざまなプラグインをインストールして構成した可能性があるため、ローカルマシンからこれらのファイルを編集すると便利な場合があります。 この章では、次の項目について説明します-
- リモートファイルにアクセスする
- netreadとnetwriteを理解する
- その他のサポートされているプロトコル
リモートファイルへのアクセス
Vimは、次の構文を使用したリモートファイル編集をサポートしています-
$vim scp://[email protected]/filepath
上記の例では、vimはscpプロトコルを使用する必要があることを認識し、そのプロトコルを使用してファイルにアクセスします。 例えば-
$ vim scp://[email protected]//tmp/message.txt
上記のコマンドは、リモートサーバーから/tmp/message.txtファイルを開きます。 認証にSCPプロトコルとjarvisユーザーの資格情報を使用します。
nreadとnwriteを使用する
Vimは、それぞれnet readおよびnet writeを表すnreadおよびnwrite機能をサポートしています。 前のセクションでは、Vimの起動中にリモートファイルにアクセスする方法を示しました。 しかし、すでにVimを使用している場合はどうなりますか? その後、次のコマンドを使用できます-
:Nread scp://jarvis@localhost//tmp/message.txt
読み取りに加えて、リモートサーバー上のファイルを直接変更することもできます。 その場合、次のようにNwriteコマンドを使用します-
:Nwrite scp://jarvis@localhost//tmp/message.txt
ファイルを開くと、通常のVimコマンドを使用できます。
サポートされている他のプロトコル
SCPに加えて、Vimは次のプロトコルをサポートしています-
- FTP
- SFTP
- HTTP(読み取り専用)
- rsync
Vim-ヒントとコツ
Vimについての公正なアイデアが得られました。 生産性を向上させるためのVimのいくつかのヒントとコツについて説明しましょう。 このセクションでは、次の項目について説明します-
- スペースをタブに、またはその逆に変換する
- スペルミスのある単語を強調する
- 単語補完
- 文字ごとに行をコピー
- インデントコード *ファイル形式を変更する
スペースをタブに、またはその逆に変換する
タブをスペースに変換する
あなたがファイルを編集していて、入力したタブ文字をスペースに変換したい場合は、次のコマンドを実行します-
:set expandtab
このコマンドは、既存のタブをスペースに変更しないことに注意してください。 これを達成するには、次のコマンドを実行します-
:set tabstop = 4 shiftwidth = 4 expandtab
:retab
上記のコマンドでは、タブを4つのスペースに変換するようVimに指示しています
スペースをタブに変換する
スペースをタブに変換するには、以下のコマンドを実行します-
:set noexpandtab :retab!
スペルミスのある単語を強調する
スペルミスの単語を強調表示するようにVimに指示できます。 これを行うには、次のコマンドを実行します-
:set spell
以下の画像はVimのスペルミスの単語を強調しています-
単語補完
Vimは単語補完も提供します。 このため、挿入モードで次のコマンドを実行します-
Ctrl + p
行ごとに文字をコピーする
次のコマンドを使用して、文字ごとに行をコピーして貼り付けます-
Sr.No | Command & Description |
---|---|
1 |
カーソルの上にあるテキストをコピーして貼り付ける |
2 |
Ctrl + e カーソルの下にあるテキストをコピーして貼り付ける |
これらのコマンドは挿入モードで使用する必要があることに注意してください。
インデントコード
インデントしないコードをインデントする場合は、次のコマンドを実行します-
=%
たとえば、このようなインデントされていないコードがある場合-
次に、4行目に進み、=%コマンドを実行します。 このようなコードをインデントします-
ファイル形式を変更する
ファイル形式をUNIXに変更するには、次のコマンドを実行します-
:set ff = unix
ファイル形式をDOSに変更するには、次のコマンドを実行します-
:set ff = dos
Vim-カスタマイズ
要件に応じてVimをパーソナライズできます。 このセクションでは、次の項目について説明します-
- 構成ファイル
- フォントを変更する
- 配色の変更
- 個人的な強調表示
- ステータスライン
構成ファイル
Vimの構成ファイルは、ユーザーレベルまたはグローバルレベルにすることができます。 ユーザー固有の設定はユーザーレベルのファイルに保存され、グローバル設定はグローバルレベルのファイルに保存されます。
Vimrcファイル
- グローバルvimrc *
グローバルvimrcファイルを見つけるには、エディターで次のコマンドを実行します
:echo $VIM
OR
:echo \%VIM\%
Linuxでは、このファイルは/usr/share/vimディレクトリにあり、WindowsではC:\ Program Files \ Vimフォルダーにあります。
- ローカルvimrc *
ローカルvimrcは、ユーザーのホームディレクトリの下に配置されます。 たとえば、Linuxでは/home/<USER>ディレクトリにあり、WindowsではC:\ Documents and Setting \ <USER>/フォルダーにあります。
Windowsではファイル名は_vimrcですが、Linuxでは.vimrcになります。
Gvimrc
- グローバルgvimrc *
Linuxでは、このファイルは/usr/share/gvimディレクトリにありますが、Windowsでは、C:\ Program Files \ Vimフォルダーにあります。
- ローカルgvimrc *
ローカルgvimrcは、ユーザーのホームディレクトリの下に配置されます。 たとえば、Linuxでは/home/<USER>ディレクトリにあり、WindowsではC:\ Documents and Setting \ <USER>/フォルダーにあります。
Windowsではファイル名は_gvimrcになりますが、Linuxでは55 .gvimrcになります。
exrc
exrcファイルは、後方互換性のために使用されます。 vimrcまたはgvimrcファイルが存在する場合、これらのファイルは無視されます。
- グローバルexrc *
Linuxでは、このファイルは/usr/share/vimディレクトリにあり、WindowsではC:\ Program Files \ Vimフォルダーにあります。
- ローカルexrc *
ローカルexrcは、ユーザーのホームディレクトリの下に配置されます。 たとえば、Linuxでは/home/<USER>ディレクトリにあり、WindowsではC:\ Documents and Setting \ <USER>/_ exrcフォルダーにあります。
フォントを変更する
フォントを変更するには、gVimで次のコマンドを実行します-
:set guifont = courier
上記のコマンドは、フォントをクーリエに変更します。
カラースキームを変更する
カラースキームを変更するには、次のコマンドを実行します-
:colorscheme <tab>
タブ文字を押すと、Vimで利用可能な配色が表示されます。
個人的な強調表示
特定の列の後の文字を強調表示する
以下のコマンドを実行して、73より大きい列を強調表示します-
:match ErrorMsg/\%>73v.\+/
以下の画像はこれを示しています-
以下は、このコマンドの説明です-
Sr.No | Command & Description |
---|---|
1 |
列の後に一致 |
2 |
73 これは列番号です |
3 |
V 仮想列でのみ機能するはずです |
4 |
.\+ 1つ以上の文字に一致 |
行番号を追加
行番号を追加するには、次のコマンドを実行します-
:set number
これを無効にするには、次のコマンドを実行します-
:set nonumber
番号幅を設定する
番号幅を設定するには、次のコマンドを実行します-
:set numberwidth = <num>
スペルチェック
スペルチェックを有効にするには、次のコマンドを実行します-
:set spell
そして、スペル言語を設定するには、次のコマンドを実行します-
:set spelllang = <language>
たとえば、次のコマンドを使用してドイツ語を設定するには-
:set spelllang = de
略語
略語を使用して、長い文字列のショートカットを作成できます。 たとえば、以下のコマンドは「quick」という略語を作成します。
:abbr quick the quick brown fox
「quick」と入力してTabキーを押すと、「the quick brown fox」という文字列に置き換えられます
これを使用して、いくつかのタイプミスを修正できます。 たとえば、以下のコマンドはこれを行います-
:abr teh the
ステータスライン
ステータス行は、エディターの下部に表示されます。 ステータス行を有効にするには、次のコマンドを実行します-
:set laststatus = 2
現在のセッションでこれを削除するには、次のコマンドを実行します-
:set laststatus = 0
Vim-結論
Vimは非常に強力なエディターであり、今では手を汚すことができます。 Vimをマスターすると、生産性が大幅に向上します。 Vimを使用すると、少ないコマンドで多くの複雑なタスクを解決できます。 Vimの詳細については、次のドキュメントを参照してください。
Vim公式ドキュメント
次のWebサイトからVimの公式ドキュメントにアクセスできます-
Vimスクリプトガイド
スクリプトを記述してvimをさらに強化できます。 独自のスクリプト言語があります。 それについての詳細を知るには、次のリンクをご覧ください-
https://vim.sourceforge.io/scripts/index.php
Vimプラグイン
Vimプラグインはさらに機能を拡張し、生産性を向上させます。 Vimのプラグインをインストール、構成、および作成することもできます。 これに関するドキュメントは、公式Webサイトから参照できます。