ホームページ システムチュートリアル Linux VIM の高度な操作スキルを学ぶ

VIM の高度な操作スキルを学ぶ

Jan 05, 2024 am 10:52 AM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

###導入### この記事では、他の通常のテキスト エディタでは完了できない、または完了が非常に遅い、いくつかの単純な VIM 操作を集めます。この記事の紹介を通じて、初心者は VIM を学習する決意と自信を強化することができます。簡単にデモンストレーションできる優れたテクニックがあれば、メッセージを残してください。また、特に明記されていない限り、この記事で説明されているキーでは大文字と小文字が区別されます。たとえば、テキストに「G を押してください」と書かれている場合、押すキーは「Shift G」である必要があります。

VIM の高度な操作スキルを学ぶ

1.準備

まず、VIM を開いて、今日のデモ用のテキストを入力します。

リーリー 2. 検索と置換

ESC を数回押して通常モードに入り、コマンド :%s/ /\r/g/ を入力します。 Enter キーを押した後の効果は次のとおりです:

リーリー

説明: このコマンドの機能は、記事内のすべてのスペースを復帰に置き換えることです。ほとんどすべてのエディターは検索と置換をサポートしていますが、すべてのエディターがスペースをキャリッジ リターンで置換することをサポートしているわけではないため、この機能を他の多くのエディターで実装するのは比較的面倒です。

3. 線の接合

先ほど、テキスト行を 4 行に分割しましたが、それらを再びつなぎ合わせるにはどうすればよいでしょうか?もちろん、上で説明した検索と置換の方法を使用して、改行をスペースに置き換えることによって行を結合することができます。ただし、ここでは別の方法を使用します。

ESC を数回押して通常モードに入り、コマンド ggVG を入力します。 gg はテキストの先頭へのジャンプを意味し、V は行選択モードへの移行を意味し、G は記事の末尾への選択を意味します。これら 3 つのコマンド、合計 4 つのキーストロークを使用して、記事全体を選択しました。

次に、コロンを押します: コマンド モードに入り、ステータス バーが表示されます: :'、その後に j を入力して Enter キーを押すと、記事全体が表示されます記事は再び結合され、Enter キーを含む操作全体で 7 回のキーを押すだけで済みました:

リーリー 4. アクションをコピー、貼り付け、繰り返します

ESC を数回押して現在がノーマル モードであることを確認し、yy を押して現在の行をデフォルトのレジスタ (クリップボードに相当) にコピーします。次に 12p を押すと、VIM は貼り付けアクションを 12 回実行し、次のような 13 行の文字が画面に表示されます。 リーリー

説明: VIM では、コピーと貼り付けの操作が非常に高速です。さらに、VIM のほとんどのコマンドは、コマンドの前に数字を追加することで数回繰り返すことができます。

5. 列の操作 次に、各行の先頭の最初の文字を大文字に変更します。

ESC を数回押して通常モードであることを確認し、gg を押して最初の行にジャンプし、

Ctrl v を押して列選択モードに入ります (Ctrl v を押しても失敗した場合)列選択モードに入り (ここを参照)、G を押して記事の最後の行にジャンプします。この時点で、テキストの最初の列が選択され、最初の列のみが選択されていることがわかります。 U キーを押すと、各行の最初の文字が大文字になることがわかります。ヒント: テキストを選択した後、u を押すとテキストが小文字に変更され、~ を押すと元の大文字と小文字が反転します。 リーリー

次に、各行の前にアスタリスクを追加します。 gg を押して最初の行にジャンプし、

Ctrl v を押して列選択モードに入り、G を押して全文の最初の列を選択し、I を押して列挿入状態に入り、アスタリスク * を入力します。 ESC を押すと、すべての行の前にアスタリスクが表示されることがわかります: リーリー

説明: プログラムを作成する人にとって、コードの一部をバッチでコメント アウトすることは非常に一般的な操作であり、列の挿入を使用すると簡単に行うことができます。さらに、列を選択した後に [x] を押すと、選択したブロックを削除したり、バッチでコメントを解除したりできます。

6. マクロの記録 次に、テキストの偶数行を次のように変更します:

これは別のテストです。すべての偶数行で同じ操作を実行する必要があるため、この操作を記録して数回繰り返し再生することで、作業をすばやく完了できます。

まず、ESC を数回押して通常モードであることを確認し、次に gg を押して最初の行にジャンプし、操作を開始する準備をします。まず q キーを押し、次に別の文字を押して、その文字に対応するレジスタにこのマクロを記録します。たとえば、ここで m レジスタを使用する場合は、qm を押します。このとき、VIM ステータス バーに「録画中」という文字が表示され、録画状態になったことを示します。

然后,我们把第二行的 a 修改为 another。首先按 j 进入第二行,然后按 $ 跳到行末,再按两下 b 往前跳两个单词,此时光标停在字母 a 上。然后我们按下 caw键删除 a 并进入插入状态,然后输入 another ,按 ESC 回到 Normal 状态,按 j 进入下一行,整个操作步骤就完成了。最后,我们再按一下 q,结束该宏的录制。

接下来我们播放这个宏,完成整个操作步骤。在键盘上输入 1000@m,表示将 m 寄存器里的宏播放 1000 次,马上可以看到,文章中所有偶数行的 a 都变成了 another。

*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
ログイン後にコピー

解说:虽然我们指定播放 1000 次,但事实上,执行到第 6 次的时候,光标挪到了屏幕最下方,于是执行过程就自动停止了。因此,在批量操作的时候,我们可以指定足够大的数字,而不用担心出现问题。

另外,修改 a 的时候,我们跳到行末后再使用 b 命令以单词为单位跳转,而没使用 h 一个字母一个字母往回挪,我们使用caw 修改整个单词,而不使用 s 命令删除单个字母并进入 Insert模式。这些细节可以保证录制得到的宏更具有一般性。

7. 行尾块操作

注:本章由 Jason Han 网友贡献,感谢他来信指出滇狐原先对于行尾块操作理解的错误。

下面,我们要在每行的尾部都添加一个感叹号。之前我们在每行头部添加一个星号的时候,用的是 Ctrl-V 列操作。现在要在行尾添加,能不能继续用列操作呢?直观上似乎是不行的,每行的长度不一样,行尾位置参差不齐,如何使用列模式往行尾添加东西呢?

事实上,Vim 提供了一种特殊的列模式,叫做行尾块模式,也就是说,我们是可以通过 Ctrl-V模式来选中长度不同的行的行尾,然后对行尾作统一操作的,操作步骤如下:

按下 gg 跳到第一行,按 Ctrl-V 进入列选择模式,再按 G,选中全文的第一列,然后按下 $,进入行尾块模式,按下 A,进入块插入状态,输入星号 !,再按下 ESC,你会看到,所有行尾部都出现了一个感叹号:

*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
ログイン後にコピー
ログイン後にコピー
8. 点命令

接下来,我们在每行的末尾加上一个小于号 。

由于我们需要在每行后面添加新行,因此我们无法使用块选择方式批量添加小于大于号。使用宏录制的方式是可以做到这点的,但操作稍嫌繁琐了一些。使用点命令,可以非常方便地做到这一点。

先按几下 ESC 确认当前出于 Normal 模式,然后使用 gg 跳到第一行,按 A 进行行尾插入,输入 ,最后 ESC 回到 Normal 状态,第一行修改就完成了。

然后,我们按 j 进入下一行,也就是第三行,再按 .,可以看到,第三行尾部也出现了小于号,并且自动添加了第四行的大于号。反复按j.j.j. ,直到每一行都完成了这个编辑动作为止。

*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
ログイン後にコピー
ログイン後にコピー

解说:点命令的作用是,重复最近一次所做的编辑操作。由于在第一行里做的操作是行尾添加并插入新行,因此在第三行(原先的第二行)重复这个动作的时候,也会在行尾添加同样的字符。点命令功能不如宏强大,但它使用起来比宏简便,因此也有着广泛的用途。

以上がVIM の高度な操作スキルを学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosをインストールする方法 Centosをインストールする方法 Apr 14, 2025 pm 09:03 PM

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosはメンテナンスを停止します2024 Centosはメンテナンスを停止します2024 Apr 14, 2025 pm 08:39 PM

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

Centosのgitlabのバックアップ方法は何ですか Centosのgitlabのバックアップ方法は何ですか Apr 14, 2025 pm 05:33 PM

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

セントスにハードディスクをマウントする方法 セントスにハードディスクをマウントする方法 Apr 14, 2025 pm 08:15 PM

CentOSハードディスクマウントは、次の手順に分割されます。ハードディスクデバイス名(/dev/sdx)を決定します。マウントポイントを作成します( /mnt /newdiskを使用することをお勧めします);マウントコマンド(Mount /dev /sdx1 /mnt /newdisk)を実行します。 /etc /fstabファイルを編集して、永続的なマウント構成を追加します。 Umountコマンドを使用して、デバイスをアンインストールして、プロセスがデバイスを使用しないことを確認します。

Centosがメンテナンスを停止した後の対処方法 Centosがメンテナンスを停止した後の対処方法 Apr 14, 2025 pm 08:48 PM

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

See all articles