[Vim入門④] 文章を編集してみよう

はじめに

💡
この記事はVim入門シリーズの第4弾です。 初めての方は過去記事もどうぞ:
第1弾: Vimの4つのモード
第2弾: 横方向の移動
第3弾: 縦方向の移動

今回はVim入門シリーズ第4弾、文章の編集です。

皆さん、過去三回の記事でVim内の移動はマスターされたかと思います!

また、移動だけでなく、より根源にあるVimの4つのモードの使い方も少しずつ身についてきたかと思います。

今回からは移動へのフォーカスを外し、文章の編集について詳しく見ていきます。

そもそも編集って?

「文章の編集」 と一言にいっても、その定義は広いです。

「文章の編集」と聞いてまず思いつくのが 「文章の入力」 かと思います。

従来のワードプロセッサーやIDEでは、この 「文章の入力」 がデフォルトです。例えば、Microsoft Wordを開いて文字を入力すると、文章の入力が行われます。

でも、Vimはそうではありません。 「文章の編集」 (ノーマルモード)がデフォルトなんです。
Vim初心者がつまづく一番の原因はここだと思います。

「文章の編集」は、単語を入れ替えたり、文章を動かしたり、コピペしたり、文章を削除したり。編集作業全般を指します。

Vimは、これらの編集作業全般ができるノーマルモードがデフォルトなんです。
これだけ多くの作業を キーボードだけ で出来るようにVimは設計されているのです。

覚えるコマンドは多いですが、以前紹介した移動コマンドと組み合わせれば覚えやすいと思います。

今回はノーマルモードやビジュアルモードを使った文章の編集を紹介します。

コピー

yキーを押すと選択範囲をコピーできます。
コピーする時はコピーしたい文の範囲も併せて指名します。

例えば、第二回で紹介した横移動コマンドを使って、

  • yw -> カーソル上の1単語をコピー
  • y5w -> カーソルから先の5単語までをコピー
  • y$ -> カーソルから行末までコピー

第三回で紹介した縦移動コマンドなら

  • y2j -> カーソルから下2行までをコピー
  • y{ -> カーソル内の文節をコピー
  • yG -> カーソルからファイルの終わりまでコピー

…と、移動コマンドと組み合わせることで広範囲の編集が簡単になります。

ちなみにペーストはpでできます。ペーストは回数指定ができるので、10pと打てば同じ文章を10回ペーストしてくれます。

テキストオブジェクトについて

もしこの記事から一つ持ち帰るとすれば、マジでこれを覚えておいてもらいたいです。

上記コマンドを試してみた方、ywy{に違和感を覚えませんでしたか?

実はこのコマンド、カーソルが対象の途中にある場合、カーソルから対象の終わりまでしかコピーしてくれません。

単語や文節そのものをコピーしてくれないんです。

もし、カーソルの位置に関係なく単語や文節を全部コピーしたい場合、テキストオブジェクトを有効利用しましょう!

使い方は簡単です。

  • yiwでカーソル内の単語をコピー
  • yawでカーソル内の単語+周りのスペースをコピー

…といった感じで、コマンドの間にiまたはaを入れることで使えます。

コピーできる単位はw(単語),((括弧),"(引用符),{(文節)などなど…

これを使うと編集コマンドの制度が爆上がりするので、使わない手はないです。
ぜひ試してみてください!

文の変更

cを押すと選択範囲を変更できます。
選択範囲にある文章が削除され、即座にインサートモードに切り替わります。

yと同じで、移動コマンドを使って選択範囲を指定します。

  • c0 -> カーソルから行頭まで変更
  • c2k -> カーソルから上2行までを変更
  • ci(でカーソルの括弧内の文章を変更

cで削除された元の文章はクリップボードにコピーされるので、pでペーストして復元できます。
{: .notice--info}

文の削除

cを押すと選択範囲を削除できます。

yおよびcと同じで、移動コマンドを使って選択範囲を指定します。

  • d4b -> カーソルから前の四単語まで削除
  • dgg -> カーソルからファイルの先頭まで削除
  • da"でカーソルの引用符をまとめて削除

その他の編集コマンド

一文字編集コマンド

一文字だけ編集したいときは、文章範囲を指定するのもメンドクサイので下記コマンドを使いましょう。

  • s (一文字変更)
  • x (一文字削除)

大文字小文字

~で文字の大文字小文字を入れ替えられます。
範囲選択できるので、単語やカッコ内の文章の入れ替えもできます。

単語の検索と置き換え

第一回: Vimの4つのモードで紹介したコマンドモードを使って、単語の検索と置換ができます。
具体的には、ノーマルモード中に:sと入力することでコマンドモードに移行しsedと同じことができるようになります。

  • :s/before/after -> カーソルがある行の一番初めに出てくるbeforeafterに置き換え
  • :s/before/after/g -> カーソルがある行に出てくる全てのbeforeafterに置き換え
  • :1,5s/before/after/g -> ファイルの1行目から5行目のすべてのbeforeafterに置き換え
  • :%s/before/after -> 全行の一番初めに出てくるbeforeafterに置き換え
  • :%s/before/after/g -> ファイル内すべてのbeforeafterに置き換え
  • :%s/before/after/gc -> c(checkのc)を入れると、置き換える前に確認ができます。

ちなみに、ビジュアルモードで範囲を指定してから:sと入力すると選択範囲でsedできます。

おわりに

今回は、Vimを使った文章の編集コマンドをいくつか紹介しました。
特にc y dはVimの基本といってもいいコマンドで、よく使われます。

前回の移動コマンドと合わせて、より早いVimライフをエンジョイしましょう!

Read more

今年読んだ本を振り返る 2024

今年読んだ本を振り返る 2024

早いもので、今年も年の瀬。皆さん、年末いかがお過ごしでしょうか。 いきなりですが、読書歴って人の性格とマイブームを如実に写し出すものだと思うんですね。というわけで、年末というキリのいい時期に、今年読んだ本を振り返って見ようと思います。 「ああ、年初はこんなこと考えてたなぁ」 「こんな本読んでたっけ!?」 思い出にふける自分用の記事になってます。 「最強!」のニーチェ入門 幸福になる哲学 (河出文庫) 去年末、國分 功一郎先生の「暇と退屈の倫理学」を読んでから哲学にハマってました。その流れを汲んで2024年一発目の本は哲学書。「暇と退屈の倫理学」の中でニーチェに触れ、彼がカッコいいと思いニーチェ入門書を購入…みたいな理由だったと思います。 数年前、飲茶先生の著書「史上最強の哲学入門」を読み、"とにかく分かりやすいなー!"と思ったのは覚えてます。哲学の入門書といえば飲茶先生です。 この「ニーチェ入門」も、著者と一般人の対話形式なので凄く分かりやすいです。哲学書によくある難しい言い回しはないですし、ページ数も少ないので一般人でも読みやすい本になってます。 入門書なんですが、

By Roland Thompson
Keychron Q11のすゝめ

Keychron Q11のすゝめ

年がら年中パソコンに張り付いてるネット民の同志の皆様、ごきげんよう。快適なパソコンライフ送ってますか? 私はと言うと、実はとても調子がいいのです! え?なぜかって?実はこいつのおかげでしてね・・・ Keychron Q11!! このスパッと2つに割れたキーボードを使い始めてから体の調子がすこぶる良くて、 * 長年悩まされた肩痛が治った * 姿勢が良くなった * 彼女ができた * 宝くじがあたった * この前、初めてホームランを打ったの! と、いいこと三昧なんですね。 そこで今回はこのKeychron Q11を皆さんに宣伝紹介したいと思います。 私とキーボード 我々の生活にスマホが普及して久しいですが、パソコンもまだまだ現役。読者の皆様は常日頃からパソコンを使う方が多いと思います。 総務省の情報通信白書によると、パソコンの世帯保有率は70%、インターネット利用率は50%前後を推移しています。まだまだ高い水準ですね。 かく言う私もパソコンがないと生きていけない生活を送ってます。 * まず、仕事がエンジニアなので、パソコンがないと飯が食えない * 続

By Roland Thompson