LinuxでVIMエディタを使う方法

LinuxでVIMエディタを使う方法

豊富なオプションを備えた強力なエディターとして、Vim は多くのユーザーに愛されています。この記事では、デフォルトでは有効になっていないが、実際には非常に便利な Vim のいくつかのオプションについて説明します。これらは各 Vim セッションで個別に有効にできますが、すぐに効率的な編集環境を作成するには、Vim の設定ファイルでこれらのコマンドを設定することをお勧めします。

ヒント: vim の使用効率を素早く向上させる原則と方法

vim は、すべての Unix/Linux オペレーティング システムのデフォルトのエディターです。強力な機能と効率的な操作性により、vim は多くの Unix/Linux ユーザーや管理者が習得して使いこなさなければならない編集ツールの 1 つにもなっています。特にグラフィカルインターフェースがない場合には、vim は不可欠です。 Vim には多くのコマンドがあり、使い方も非常に柔軟であるため、習得するのはやや困難です。この記事の著者は、自身の経験を組み合わせて、7 つの側面で vim ファイル編集の効率を迅速に向上させ、半分の労力で 2 倍の結果を達成できる原則、方法、またはコマンドを紹介することに重点を置いています。

導入

Vi はもともと 1976 年に Bill Joy によってコーディングされました。 Vim (Vi IMproved) は、1991 年に Bram Moolenaar によって開発、リリースされた改良版の Vi です。 vim は、すべての Unix/Linux オペレーティング システムのデフォルトのエディターです。強力な機能と効率的な操作性により、vim は多くの Unix/Linux ユーザーや管理者が習得して使いこなさなければならない編集ツールの 1 つにもなっています。特にグラフィカルインターフェースがない場合には、vim は不可欠です。 Vim には多くのコマンドがあり、使い方も非常に柔軟であるため、習得するのはやや困難です。 vim の使い方を詳しく紹介している記事はたくさんあるので、この記事では vim のすべての機能やコマンドを説明することはしません。この記事の著者は、自身の経験を組み合わせて、7 つの側面で vim ファイル編集の効率を迅速に向上させ、半分の労力で 2 倍の結果を達成できる原則、方法、またはコマンドを紹介することに重点を置いています。この記事で説明する方法またはコマンドは、システムのデフォルト設定の vim のみに適用されます。 vim のさまざまなカスタマイズされた機能については、この記事では説明しません。 (注: この記事で説明するすべてのコマンドは、Red Hat Enterprise Linux Server リリース 6.1 でテストされています。)

Vimのバージョン選択

「仕事をうまくやりたかったら、まず道具を研がなければなりません。」 vim のバージョンを選択する場合の原則は、「Vim を使用できる場合は Vi を使用しないこと、最新バージョンを使用できる場合は古いバージョンに固執しないこと」です。 Vim は、構文の強調表示や色付け機能など、Vi よりも多くの機能と特徴を提供します。使用効果と効率の面では、同じファイルを編集する場合は Vim の方が優れています。バージョンに関しては、新しいバージョンでは古いバージョンの欠陥や欠点が修正されることがよくあります。これには、可能な限り最新バージョンの Vim を使用する必要があります。

ヒント:

Linux では、システムに root ユーザーとしてログインすると、vi コマンドで開いた Vim エディターには最も基本的な機能のみが読み込まれることが多く、構文の強調表示や色付けなどの機能は基本的に欠落しています。 Vim のすべての機能を root として使用するには、vim コマンドで Vim エディターを開きます。

始める前に

ここで説明するオプションや設定はすべて、ユーザーのホーム ディレクトリにある Vim 起動設定ファイル .vimrc にあります。 .vimrc でオプションを次のように設定します。
(注: vimrc ファイルは、/etc/vimrc や /etc/vim/vimrc など、Linux のグローバル設定にも使用されます。この記事で言及されている .vimrc は、ユーザーのホーム ディレクトリにある .vimrc ファイルを指します。)

Linuxの場合:

  • Vimで.vimrcファイルを開きます: vim ~/.vimrc
  • この記事の最後にあるオプションリストをコピーして、.vimrcファイルに貼り付けます。
  • 保存して閉じる (:wq)

(貼り付けが成功しない可能性が高いため、Vim を使用して .vimrc ファイルを編集することはお勧めしません。.vimrc ファイルを編集するには、gedit エディターを選択できます。)

Windowsの場合:

  • まずgvimをインストールします
  • gvimを開く
  • 「編集」->「スタートアップ設定」をクリックして_vimrcファイルを開きます
  • この記事の最後にある「オプションリスト」をコピーして、_vimrcファイルに貼り付けます。
  • ファイル -> 保存をクリックします

(_vimrc ファイルを編集する際に Windows に組み込まれているメモ帳を使用しないように注意してください。そうしないと、行末が異なるために問題が発生する可能性があります。)

次に、Vim 編集の効率を向上させるオプションについて詳しく説明します。主に以下のカテゴリーに分かれています。

  1. インデントとタブ
  2. 表示と書式設定
  3. 検索
  4. 閲覧とスクロール
  5. スペル
  6. その他のオプション

1. インデントとタブ

新しい行を作成するときに、前の行と同じインデントを使用するように Vim を設定します。

set autoindent

新しい行を作成するときにスマート インデントを使用します。主に C などのプログラムで使用されます。通常、スマートインデントをオンにするときは、自動インデントもオンにする必要があります。

set smartindent

注: Vim は言語を認識し、ファイル内のプログラミング言語に基づいてデフォルト設定を変更して効率を高めることができます。ここでは説明されていない、axs cindent、cinoptions、indentexpr などの多くのデフォルト設定オプションがあります。 syn は、ファイルの構文を設定して表示モードを変更するのに非常に便利なコマンドです。

(ここで、syn は構文を指し、これを使用してファイルで使用されるプログラミング言語を設定し、対応する構文の強調表示を有効にし、自動イベント (autocmd) を実行できます。)

ファイル内のタブ文字の幅を設定します (スペースの数で表されます)。

set tabstop=4

シフト操作 >> または << のインデントの長さ (スペース数) を設定します。

set shiftwidth=4

ファイルを編集するときにタブではなくスペースを使用する場合は、次のオプションを設定すると、Tab キーを押したときに Vim がタブではなくスペースを使用するようになります。

set expandtab

注意: タブ文字に依存する Python などのプログラミング言語では、問題が発生する可能性があります。この場合、ファイルの種類に応じてオプションを設定できます (autocmd を参照)。

2. 表示と書式設定

各行の前に行番号を表示するには:

set number

テキスト行が一定の長さを超えたときに自動的に折り返すには:

set textwidth=80

ウィンドウの右側から数えた列数に基づいてテキストを折り返すには:

set wrapmargin=2

(textwidth オプションが 0 でない場合、このオプションは効果がありません。)

ファイルを移動中にカーソルが括弧の上を通過すると、一致する括弧が強調表示されます。

set showmatch

3. 検索

検索に一致するものをすべて強調表示します。

set hlsearch

検索中に一致するコンテンツを動的に表示:

set incsearch

検索時に大文字と小文字を区別しない:

set ignorecase

検索に大文字が含まれている場合に大文字と小文字を区別して検索するには、ignorecase オプションをオンにします。

set smartcase

たとえば、ファイルの内容が次の場合:

テスト

テスト

ignorecase と smartcase の両方が設定されている場合、「test」を検索すると、次の 2 つのコンテンツが見つかり、強調表示されます。
「Test」を検索すると、2行目のみがハイライト表示されるか、検索されます。

4. ブラウジングとスクロール

より見やすい表示のために、カーソルをウィンドウの最初の行ではなく中央に配置することをお勧めします。次のオプションでは、カーソルがウィンドウの上下 5 行に配置されます。

set scrolloff=5

例:

最初の画像では scrolloff=0、2 番目の画像では scrolloff=5 です。

ヒント: オプション nowrap を設定していない場合は、sidescrolloff を設定すると便利です。

Vim ウィンドウの下部に永続的なステータス バーを表示し、ファイル名、行番号、列番号などを表示します。

set laststatus=2

5. スペル

Vim には、テキストの編集やコーディングに非常に便利なスペルチェッカーが組み込まれています。 Vim はファイルの種類を識別し、コード内のコメントのみをスペルチェックできます。英語のスペルチェックをオンにするには、次のオプションを使用します。

set spell spelllang=en_us

(中国語、日本語、またはその他の東アジアの文字は、スペル チェックがこれらの言語をサポートしていないため、スペル チェックをオンにすると、通常、スペルミスとしてマークされます。これらのエラー マークを無視するには、spelllang オプションに cjk を追加します。)

6. その他のオプション

バックアップ ファイルの作成を無効にする: このオプションを有効にすると、Vim はファイルを上書きする前にそのファイルのバックアップを作成し、ファイルが正常に書き込まれた後もそのバックアップを保持します。バックアップ ファイルを保持したくない場合は、次のように閉じることができます。

set nobackup

スワップ ファイルの作成を無効にする: このオプションを有効にすると、Vim はファイルを編集するときにスワップ ファイルを作成します。 スワップ ファイルは、クラッシュや使用上の競合が発生した場合にファイルを回復するために使用されます。スワップ ファイルは、. で始まり .swp で終わる隠しファイルです。

set noswapfile

同じ Vim ウィンドウで複数のファイルを編集し、それらを切り替えする必要がある場合。デフォルトでは、作業ディレクトリは最初に開かれたファイルのディレクトリになります。作業ディレクトリを編集中のファイルのディレクトリに自動的に切り替えるのは非常に便利です。作業ディレクトリを自動的に切り替えるには:

set autochdir

Vim は編集履歴を自動的に保持し、変更を元に戻すことが可能です。デフォルトでは、履歴はファイルが閉じられるまでのみ有効です。 Vim には、ファイルを閉じた後でも元に戻す履歴を維持できるようにする拡張機能が含まれています。つまり、ファイルを保存して閉じ、再度開いた後でも、以前の変更を元に戻すことができるということです。履歴ファイルは、.un~ 拡張子で保存される隠しファイルです。

set undofile

エラー メッセージ ベルは、次のエラー メッセージに対してのみ機能します。

set errorbells

必要に応じて、視覚的なエラーを設定することもできます。

set visualbell

驚き

Vim には長い形式のコマンドと短い形式のコマンドが用意されており、どちらもオプション設定を設定または設定解除するために使用できます。

自動インデント オプションの長い形式は次のとおりです。

set autoindent

自動インデント オプションの短縮形は次のとおりです。

set ai

オプションの現在の値を変更せずに現在の設定を表示するには、Vim コマンドラインで最後に ? を付けたコマンドを使用します。

set autoindent?

ほとんどのオプションを無効にしたりキャンセルするには、オプションの前に「no」を付けます。

set noautoindent

グローバル構成ファイルを変更することなく、個々のファイルに対してオプションを構成できます。必要に応じて、ファイルを開いて次のように入力し、set コマンドを入力します。この場合、構成は現在のファイル編集セッションに対してのみ有効です。

コマンドラインを使用してヘルプを取得します。

:help autoindent

注意: ここでリストされているコマンドは、Linux 上の Vim バージョン 7.4 および Windows 上の Vim バージョン 8.0 でのみテストされています。

これらの便利なコマンドは、間違いなく Vim エクスペリエンスを向上させます。他にどのような便利なコマンドをお勧めしますか?

オプション リスト このオプション リストをコピーして、.vimrc ファイルに貼り付けます。

「インデントとタブ
自動インデントを設定する
スマートインデントを設定する
タブストップを4に設定
シフト幅を4に設定
拡張タブを設定する
スマートタブを設定する
「表示とフォーマット
設定番号
テキスト幅を80に設定
wrapmargin=2 に設定
ショーマッチを設定する
" 検索
hlsearch を設定する
インクサーチを設定する
無視するケースを設定する
スマートケースをセットする
「閲覧とスクロール
scrolloff=5 に設定
最終ステータスを 2 に設定
「呪文
スペルをspelllang=en_usに設定する
その他
バックアップなしを設定する
スワップファイルなしを設定する
自動ディレクトリを設定する
undofile を設定する
ビジュアルベルを設定する
エラーベルを設定する

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Linux の vim で中国語の文字化けしたコードを解決する方法
  • LinuxシステムでVimを使用して偶数行または奇数行を削除する
  • Linux Vimの基本的な操作方法
  • Linuxでvimを使う方法
  • Linux vim 編集コマンドモード
  • Linux で vim を使用するチュートリアル
  • Linux で Vim を使用してファイルをパスワード保護する方法の詳細な説明
  • Linuxでviとvimエディタを操作する方法
  • 一般的な Linux ツール vi/vim の完全版

<<:  MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法

>>:  ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

推薦する

WeChatアプレットのスクロールビューが左右連動効果を実現

WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...

CSS3 でクールなスライス画像カルーセル効果を実現

今日は、CSS を使用してクールな画像カルーセル コンポーネントを作成する方法を学びます。その原理は...

vueを使用して登録ページの効果を実現し、vueを使用してSMS認証コードログインを実現します

この記事の例では、登録ページの効果を実現するためのVueの具体的なコードを参考までに共有しています。...

MySQL 5.7 クラスタ構成手順

目次1. サーバーAのmy.cnfファイルを変更する2. サーバーBのmy.cnfファイルを変更する...

シンプルなメッセージボードケースを実現するJavaScript

参考までに、Javascriptを使用してメッセージボードの例(メッセージ削除あり)を実装します。具...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

HTML の色に関する参考資料

HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...

mysql の認証、起動、およびサービスの起動のための一般的なコマンド

1. 4つの起動方法: 1.mysqld MySQL サーバーを起動します: ./mysqld --...

CocosCreator でレイヤー管理に常駐ノードを使用する方法

CocosCreator バージョン: 2.3.4ほとんどのゲームにはレイヤー管理機能があり、例えば...

ウェブデザインの教育または学習プログラム

セクションコース内容営業時間1 ウェブデザインの概要2 2 HTML 基本タグとフォーマットタグ 2...

SQLの最適化では間違いがよく起こります。それはMySQLのExplain Planの使い方を理解していないからです。

目次1. 準備2. 説明計画の概要3. フィールドの詳細な説明4. パーティションクエリにはパーティ...

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...

Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

vue3.0 への最初の試みを記録します。プロジェクトを開始したときに、「モジュール 'wo...

Vueドロップダウンリストの2つの実装方法の比較

Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...

Linux環境でIPV6接続をサポートするようにmysql5.6を設定する方法

導入:この記事では主に、Linux システムで IPV6 接続をサポートするように MySQL を構...