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

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

Jan 05, 2024 am 10:52 AM
linuxLinuxチュートリアルレッドハット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 サイトの他の関連記事を参照してください。

声明
この記事はLinux就该这么学で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Linuxで失敗したサービスを自動的に再起動する方法Linuxで失敗したサービスを自動的に再起動する方法Apr 28, 2025 am 09:39 AM

このガイドでは、SystemDを使用してLinuxで自動サービスの再起動を構成する方法を詳しく説明し、システムの信頼性を高め、ダウンタイムを最小限に抑えます。 システム管理者は、多くの場合、この機能に依存して、Webサーバーなどの重要なサービスを確保しています(APA

すべてのSysadminが知っておくべき10の隠されたLinuxコマンドすべてのSysadminが知っておくべき10の隠されたLinuxコマンドApr 28, 2025 am 09:35 AM

Linuxユーザーとして、一般的に使用されるコマンドLS、Grep、AWK、SEDに依存していることがよくあります。しかし、Linuxには、時間を節約し、タスクを自動化し、ワークフローを簡素化できる、あまり知られていないコマンドが多数あります。 この記事では、より多くの注目に値するいくつかの過小評価されているが強力なLinuxコマンドを探ります。 変更 - 効率的なバッチの名前変更ファイル 複数のファイルの名前を一度に変更する必要がある場合、名前変更コマンドは救世主です。 MVを含むループを使用せずに、名前を変更することで、複雑な名前変更パターンを簡単に適用できます。 すべての.txtファイルを.logに変更します。 's/\。txt$/\。log/' *を変更する

LinuxのSystemDに基づいてすべての実行中のサービスをリストする方法LinuxのSystemDに基づいてすべての実行中のサービスをリストする方法Apr 28, 2025 am 09:29 AM

Linux Systemsは、さまざまなシステムサービス(プロセス管理、ログイン、Syslog、Cronなど)およびネットワークサービス(リモートログイン、電子メール、プリンター、Webホスティング、データストレージ、ファイル転送、ドメイン名解像度(DNSを使用)、動的IPアドレス割り当て(DHCPを使用)など)を提供します。 技術的には、サービスは、バックグラウンドで継続的に実行され、着信リクエスト(特にクライアントから)を待っているプロセスまたはプロセスのグループ(通常はデーモンとして知られています)です。 Linuxは、通常、プロセスまたはサービスマネージャーを介して、サービスを管理するためのさまざまな方法(開始、停止、再起動、システムスタートアップでの自動スタートアップなど)をサポートします。現在、ほとんどすべての最新のLinux分布が同じものを使用しています

クロスオーバー25:LinuxでWindowsソフトウェアとゲームを実行しますクロスオーバー25:LinuxでWindowsソフトウェアとゲームを実行しますApr 28, 2025 am 09:27 AM

クロスオーバー25を使用してLinuxでWindowsソフトウェアとゲームを実行する LinuxでWindowsアプリケーションとゲームを実行することは、CodeweaversのCrossover 25のおかげで、これまで以上に簡単になりました。 この商用ソフトウェアソリューションにより、Linuxユーザーはさまざまな風を走らせることができます

PCLoud-最も安全なクラウドストレージ[50%オフオファー]PCLoud-最も安全なクラウドストレージ[50%オフオファー]Apr 28, 2025 am 09:26 AM

PCLoudでデータを保護する:Linuxインストールの包括的なガイド 主要なセキュアクラウドストレージサービスであるPCLoudは、ファイルとデータを管理するための堅牢なプラットフォームを提供します。このガイドは、Linux Systemsのインストールプロセスについて詳しく説明しています。 について

Mangohud- LinuxゲームでのFPS、CPU、GPUの使用を監視するMangohud- LinuxゲームでのFPS、CPU、GPUの使用を監視するApr 28, 2025 am 09:25 AM

Mangohud:Linuxゲームパフォーマンスのリアルタイム監視のための強力なツール Mangohudは、ゲーマー、開発者、およびシステムパフォーマンスをリアルタイムで監視したい人向けに設計された強力で軽量なツールです。 VulkanおよびOpenGLアプリケーションのオーバーレイとして機能し、FPS、CPU、GPUの使用、温度などの重要な情報を表示します。この記事では、Mangohudの機能、動作原則、使用法を調査し、Linuud on Linux on Linudのシステムをインストールおよび構成するための段階的な命令を提供します。 マンゴードとは何ですか? MangohudはGitHubで利用可能なオープンソースプロジェクトであり、監視するシンプルでカスタマイズ可能な方法を提供することを目指しています

5必見のLinuxコマンドラインアーカイブツール - パート15必見のLinuxコマンドラインアーカイブツール - パート1Apr 28, 2025 am 09:23 AM

アーカイブされたファイルの管理は、Linuxで一般的なタスクです。この記事では、2部構成のシリーズの最初の記事では、5つの強力なコマンドラインアーカイブツールを調査し、機能と使用を例で詳しく説明しています。 1。TARコマンド:汎用性の高いアーカイブユーティリティ t

Linuxのファイルを比較するためのトップ7ツール(例を使用)Linuxのファイルを比較するためのトップ7ツール(例を使用)Apr 28, 2025 am 09:21 AM

このガイドでは、システム管理者と開発者にとって重要なタスクであるLinuxのテキストファイルを比較するためのさまざまな方法を調査します。 コマンドラインツールと視覚的なDIFFツールをカバーし、その強みと適切なユースケースを強調します。 仮定しましょう

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。