あなたをプロユーザーにする8つのVimのヒントとコツ

簡単な説明 :この記事では、私のお気に入りのVimトリックのいくつかを実用的な例とともに紹介します。 あなたがVimを使わないのなら、これらのヒントはVimを使う理由を与えないかもしれませんが、あなたがすでにそれを使っているならば、あなたは間違いなくより良いVimユーザーになるでしょう。

最近Atomを使うようになっても、Vimを使わないと一日を過ごすことはできません。 私が強制されているからではありません。 しかし、私はそれが快適だと感じているからです。

はい、 快適です。 Viやそのクローンについて話すとき、非常に奇妙な言葉はありませんか? そして私は同意します、確かにそれは最も直感的なテキストエディタではありません。

しかし、ある程度の練習をして、少しあなたの記憶を鍛えることで、ほんの数回のキーストロークで、見かけ上複雑な編集作業を行うことができます。 Linux用の他のコマンドラインテキストエディタで私が実際に見つけたことがない何か。

しかし、まだ他のviの紹介を書く代わりに、私はあなたに私が本当に使ういくつかのトリックを提示することによってあなたにVi(m)の真の力に触れるようにすることを選んだ。 私はあなたにそれらすべてのトリックの完全な説明をするつもりはないが、私はあなたがそれらがどのように働くかについていくらかの理解を得るまであなたがそれらを試してみることを強く勧めます。

もしあなたがVimが好きで、それを完全に習得したいのなら、Linux Training Academyが提供するオンラインVimコースに登録することもできます。

それをもっと活用するための8つのVimのトリック

繰り返しますが、これらの例を自分で試してみることを強くお勧めします。 残念ながら、WordPressは私の例とコマンドの正確な内容を保存するために良い仕事をする必要はありません - 特に空行や引用符に関して。 それで、あなたの便宜のために、あなたは下のリンクからここで使われるサンプルをダウンロードすることができます:

練習用のVim Examplesをダウンロードする

各例には、この記事に示すコマンドでVimを起動する元のテキスト(.orig)とBashスクリプト(.sh)が付属しています。

1. Vimの大文字の変更

その機能を使用しているのは私だけですか? それとも、これはすべての大文字の書き方がクールだと思っている人々と仕事をする運命にあるからでしょうか。

とにかく、プログラミングの時、著作権表示を追加する時、あるいはコピーペーストの後でさえ、テキストの大文字化を変えなければならないのは珍しいことではありません。 その点で、VimはオリジナルのViよりはるかに進化しています。 そして、私は彼の素晴らしい仕事のためにBram Moolenaarを毎日祝福します:

原文
による著作権(c)

作品の使用は、この楽器が作品と一緒に保持されていることを条件として許可されているので、作品を使用するすべてのエンティティにこの楽器が通知されます。

免責事項:作品は保証なしです。

コマンド
スイッチケース
:$ norm gUU最後の行を大文字に変換する{Viにはない}
修正されたテキスト
C opyright(c)によって

作品の使用は、この楽器が作品と一緒に保持されていることを条件として許可されているので、作品を使用するすべてのエンティティにこの楽器が通知されます。

免責事項:作品は保証なしです。

2. Vimの検索とヒントの置き換え

これは私が毎日使うものです。 なぜこれがすべてのテキストエディタにまだ存在しないのですか? もちろん、ほとんどの編集者はある種の検索置換機能を持っています。 しかし、正規表現と置換パターンの能力を実際に持っている人はどれくらいいるでしょうか。 もちろん、これは基本的な文字列置換よりも習得が複雑です。 しかし、その機能なしには生きていけないのです。 そのような時点で、私は時々自分自身が何人かのGUIエディタからsedを実行している端末にコピー/ペーストしているのを見ます。 しかしViはそれを40年かそこらから埋め込んできた…

原文
少年は毎日黒いフェンスを塗る機会を得ますか? それは物事を新たな光の中に置きました。 ベンロジャーズは彼のりんごをかじるのをやめた。 トムはブラシをぐっすり前後に動かして、その効果に注意を向けて戻ってきて - その効果を再び批判した - ベンはあらゆる動きを見て、ますます興味を持ち、ますます夢中になっていった。
コマンド
:s /黒/白/文字列 'black'の最初の出現箇所を 'white'で置き換えます
:s / Ben \(Rogers \)\ @!/ Ben Rogers / g'Rogers'がすでに存在していた場合を除き、文字列 'Ben'のすべての出現箇所を 'Ben Rogers'に置き換えます。
:s /.*/

\ r&\ r /

間の線を折り返す

そして

:-1s / - / \ - / g前の行の文字列 ' - 'をすべて ' - 'に置き換えます。
修正されたテキスト

男の子は毎日白いフェンスを塗る機会を得ますか? それは物事を新たな光の中に置きました。 ベンロジャーズは彼のりんごをかじるのをやめた。 トムはブラシをぐっすり前後に動かして - その効果に注目して - その場所に触れる - もう一度その効果を批判した - Ben Rogersはあらゆる動きを見てますます興味を持ち、ますます夢中になっていった。

それらのピケットフェンスはViMを思い出します…

3.すぐに物事を動かす

はい、コピー&ペーストとドラッグ&ドロップは素晴らしいツールです。 しかし、ときどき文書全体をスクロールして自分のテキストを貼り付ける場所を見つけてから、反対方向にスクロールしてカーソルを最初の位置に戻すのは、つまらないことです。

原文
長所:

*速い

*パワフル

* 信頼性のある

*ユーザーフレンドリーではありません。

*ポータブル

中毒性

コマンド
/力/文字列 'Power'を含む最初の行に移動します
ddp現在の行を次の行と入れ替える
/ user-friendly / m $文字列 'user-friendly'を含む次の行をファイルの末尾に移動します
g;カーソルを前の位置に戻す
/コンス/ + 1m-2'Cons'に続く行の2行上に移動する
修正されたテキスト
長所:

*速い

* 信頼性のある

*パワフル

*ポータブル短所:

中毒性

*ユーザーフレンドリーではない

4.アドレス範囲にコマンドを適用する

GUIエディタを使用すると、ファイル全体に、または現在の選択項目にのみいくつかのコマンドを適用できます。 時々、私達はカーソルの前後のようにもっと多くのオプションを持っています。 しかしVi(m)は与えられたコマンドが適用されなければならない範囲のもっと表現的な記述を許します:

原文

ペンネーム本名
マーク・トウェインサミュエルクレメンス
ルイスキャロルチャールズドジソン
リチャード・バックマンスティーブンキング

多くの作家はペンネームで書くことを選びました。

コマンド
:/ /、// g / ^ $ / d
を含む行の間にある空の行を削除する そして
:/ ^ $ /; / ^ $ / - 1㎡1行目の次の2行の空行の間にテキストを移動します(ここではセミコロンを使用していることに注意してください)。
:2、$ - 1>2行目と最後から2行目のテキストの字下げをする
修正されたテキスト

多くの作家はペンネームで書くことを選びました。

ペンネーム本名
マーク・トウェインサミュエルクレメンス
ルイスキャロルチャールズドジソン
リチャード・バックマンスティーブンキング

5. Vim Pipingのコマンド例

これはUnix哲学の直接的な精神における絶対的なメタトリックです。 Viでは、 外部コマンドを使ってバッファの一部を処理することができます。 これは、Viでは直接実行できないもの、またはViでは簡単に実行できないものが必要な場合最適です。 この機能の私のお気に入りのユースケースはデータをソートすることです - しかし、それは事実上無限の力を持っています:

原文
tee>(echo $(wc -l)最新のデータ)<< EOT

2016年8月2.11%

2016年9月2.23%

2016年10月2.18%

2016年11月2.31%

2016年12月2.21%

2017年1月2.27%

2016年3月1.78%

2016年4月1.65%

2016年5月1.79%

2016年6月2.02%

2016年7月2.33%

デスクトップ上のEOTLinux市場シェア

ソース://www.netmarketshare.com

コマンド
:2、/ ^ EOT / -1!sort -k2n -k1M年月によるデータの並べ替え
:$ r! 日付「+データは\%cを取得しました」ファイルの末尾にdateコマンドの出力を追加します。
:1、/ ^ EOT /!bash埋め込みスクリプトを実行し、その結果に置き換えます
修正されたテキスト
2016年3月1.78%

2016年4月1.65%

2016年5月1.79%

2016年6月2.02%

2016年7月2.33%

2016年8月2.11%

2016年9月2.23%

2016年10月2.18%

2016年11月2.31%

2016年12月2.21%

2017年1月2.27%

デスクトップ上の11個の最新データLinuxマーケットシェア

ソース://www.netmarketshare.com

データを取得しましたTh 09 09 Feb 2017 11:07:34 CET

6.少ない入力

正式なドキュメンテーションを書くとき、あなたが繰り返さなければならないいくつかの異常に長くて複雑な用語が常にあります。 ブランド名または製品名にすることができます。 いくつかの場所です。 著作権表示 等々。 明らかに、それらの大きな単語のそれぞれの例は正確にそして全く同じ大文字と句読点を使ってつづられなければなりません。 Vimの省略形の機能は必須です。

コマンド
:アップル社アップルコンピュータ社新しい略語を導入
挿入モードに切り替える
アップルは1977年に設立されました。

りんごのロゴはりんごです^ V。

入力したテキスト

(^ Vはcontrol- Vを意味します)

結果
Apple Computer、Inc.は1977年に設立されました。

Apple Computer、Inc.のロゴはアップルです。

7. Vimの助けを借りる

わかりました、インターネットがあります。 しかし、私のようにその人をまだ使用しているインラインヘルプを評価するでしょう。 あなたはトピックによって助けを得ることができます。 またはコマンドで。 Vimのコマンドの正確な文法やオプションを覚えていない場合や、必要なコマンドがわからない場合は、 通常のコマンドやex:コマンドが常に役に立ちます。

これを試して!
:助けて
:mを助ける
:ヘルプ:メートル

8. Vimでのスクリプティング

Vi(m)を使うときは、基本的にexと呼ばれる他の基礎的なエディタのビジュアルフロントエンドを使っています。 上記の例で、コロン(:)で始まるコマンドの数に気付いたでしょうか。 それらはexコマンドだからです。 そしてこれはVi(m)の非常に多くのテキストエディタに対するもう一つの利点です。 対話的に使うことができるだけでなく、 スクリプトを書くこともできます。

なぜ誰かがそれをしたいのですか? 私自身と言えば、私はいくつかのテキスト処理を自動化するための素晴らしい方法だと思います。 横に、あなたは私のハードドライブから直接典型的な例を見ることができます。

そのexスクリプトにはおそらく謎のコマンドがいくつかありますが、これはスクリプトから(最終的には存在する)ヘッダーを削除し、それをNEW.HEADERファイルから読み取られる別のヘッダーに置き換える - 各追加行の前に#を追加する。 私がex以外の他のツールを使ってそれをすることができたことは疑いない。 確かに、それは私たちの以前のBash Challengeのうちの1つの主題でさえありました。 しかしex 間違いなく選択肢です。

なんて不思議…
ex some.script << EOT

0pu_

1、/ ^ [^#] / - 1d

0r NEW.HEADER

1、.s / ^ /#/

wq

EOT

最初に言ったように、この記事は絶対にチュートリアルでも、Vi(m)の紹介でもありませんでした。 最近入手可能なLinux用の他のすべての最新コードエディタにもかかわらず誰かがまだそのエディタを好む理由説明するためのいくつかのVimのヒント 。 ある意味で、私はあなたと私のお気に入りの呪文のいくつかを共有しました。 しかし、ウィザードリィの素晴らしい伝統の中で、私はそれらがどのように機能するのかを明らかにしませんでした。

だから、親愛なる皆さん、下のコメント欄を使ってあなた自身の呪文や反論を分かち合うことを躊躇しないでください。

推奨されます

Mu Music Player:見栄えがよく、うまく機能する
2019
ウイルス警告! グレーマーケットで発見されたLinuxのみのトロイの木馬「Hand of Thief」
2019
ペパーミント8発売 ダウンロード中!
2019