Introduction
実践Vim
をまとめるシリーズの第 3 章です。
前々回:ドットコマンド
前回:ノーマルモード
本記事のみで学べるよう努めますが、より詳しくかつ体系的に学びたい方は
実践Vim
を読みながら進めることをおすすめします。
2023 年 6 月 11 日現在、Kindle Unlimited
対象商品です。
実践Vim
のサンプルコードです。
記事更新に合わせて章ごとにディレクトリを分割し、参照しやすいようにします。
※公式のサンプルはリンク切れしています。
実際に操作することで、コマンドを効率よく定着させましょう。
本記事が少しでも読者様の学びに繋がれば幸いです!
「いいね」をしていただけると今後の励みになるので、是非お願いします!
環境
Ubuntu22.04
Vim9.0
第 3 章 挿入モード
TIP13: 挿入モードで簡単修正
挿入モードでテキストを記述しているときに間違えたら、そこですぐに修正できる。
モードを切り替える必要はない。
(実践 Vim「TIP13」より)
-
i
キーで挿入モード
に移動。- 左下には
-- 挿入 --
と表示。
- 左下には
-
Backspace
キー以外で手早く修正するコマンドがある。1-
Ctrl + h
で直前の 1 文字を削除。(Backspace
と同じ処理。) -
Ctrl + w
で直前の 1 単語を削除。 -
Ctrl + u
で行全体を削除。
-
TIP14: ノーマルモードへの復帰
挿入モードは、テキスト入力というただ 1 つの作業に特化したモードだ。
一方、Vim ユーザーが 1 日の大半を過ごすのがノーマルモードだ。
(実践 Vim「TIP14」より)
-
モードの切り替えの煩雑さを削減する。
-
Esc
でノーマルモード
に切り替え。 -
Ctrl + [
でノーマルモード
に切り替え。
-
-
挿入ノーマルモード
は 1 コマンドのみノーマルモード
で行う。-
Ctrl + o
で挿入ノーマルモード
に切り替え。 - 左下には
-- (挿入) --
と表示。 - 1 コマンド後は
挿入モード
に戻る。 - 画面操作をしてすぐに
挿入モード
に戻りたい時に重宝。-
zz
コマンドでスクロールなど。
-
-
TIP15: 挿入モードから抜けないでレジスタから貼り付け
Vim のヤンク操作とプット操作は通常、ノーマルモードから実行されるが、挿入モードから抜けないでドキュメントにテキストを貼り付けたいときがある。
(実践 Vim「TIP15」より)
ヤンクして貼り付け
-
カンマ(,)より前のテキストをレジスタにヤンクして、次の行の末尾に貼り付ける。
chapter_code/3_insert/insert_mode/practical-vim.txtPractical Vim, by Drew Neil Read Drew Neil's
-
yt,
でカンマ(,)より前のテキストをレジスタにヤンク。 -
jA<Space>
で次の行の末尾で挿入モード
に切り替え、スペースを入れる。 -
<Ctrl + r>0
でヤンクしたテキストを貼り付け。 -
.<Esc>
でドット(.)を入力、挿入モード
に切り替え。
chapter_code/3_insert/insert_mode/practical-vim.txtPractical Vim, by Drew Neil Read Drew Neil's Practical Vim.
-
TIP16: 簡単な計算をその場で実行
Expression レジスタを使うと、計算を実行して、その結果を直接ドキュメントに挿入できる。
(実践 Vim「TIP16」より)
-
Expressionレジスタ
-
<Ctrl + r>=
で実行。 - 式を入力し
Enter
で計算結果をドキュメントに挿入。-
Vim
のスクリプトを電卓のように扱える。
-
-
式の計算
-
Expressionレジスタ
で式の計算を行う。chapter_code/3_insert/insert_mode/back-of-envelope.txt6 chairs, each costing $35, totals $
-
A
で行末に移動し挿入モード
に切り替え。 -
cW
で「.blog」を「.news」に変更。 -
6*35<Enter>
で 6*35 の結果(210)を挿入する。
chapter_code/3_insert/insert_mode/back-of-envelope.txt6 chairs, each costing $35, totals $210
-
TIP17: 文字コードを使って特殊文字を入力
Vim はその文字コードを指定することでどんな文字でも入力できる。
キーボードに対応するキーがない記号を入力する時に、これが便利だ。
(実践 Vim「TIP17」より)
- 特殊文字の挿入。
-
<Ctrl + v>{3桁の数値コード}
で 10 進コードで表現される文字を挿入。-
<Ctrl + v>{065}
でA
-
-
<Ctrl + v>u{4桁の数値コード}
で 16 進コードで表現される文字を挿入。-
<Ctrl + v>{00bf}
で¿
-
-
<Ctrl + v>{nondigit(非数値)}
で数値以外の文字をそのまま挿入。 -
<Ctrl + k>{char1}{char2}
で{char1}{char2}のダイグラフで表現される文字を挿入。
-
TIP18: ダイグラフによって特殊文字を挿入
Vim はその数値コードを指定することでどんな文字でも入力できるが、その一方で数値コードを覚えるのは難しいし、入力もめんどうだ。
特殊文字はダイグラフとしても入力が可能だ。
(実践 Vim「TIP18」より)
ダイグラフの組み合わせ自体がどんな文字かを表現しており、覚えやすく推測が容易。
- ダイグラフによる特殊文字の挿入。
-
<Ctrl + k>?I
で¿
-
<Ctrl + k>12
で½
-
14,34
でそれぞれ¼,¾
-
-
TIP19: 置換モードで既存のテキストを上書き
置換モードは、これがドキュメントにすでに入力されているテキストを上書きすることを除けば、挿入モードと同じだ。
(実践 Vim「TIP19」より)
-
置換モード
でピリオド(.)をカンマ(,)に、大文字を小文字に変更する。chapter_code/3_insert/insert_mode/replace.txtTyping in Insert mode extends the line. But in Replace mode the line length doesn't change.
-
f.
で直近のピリオド(.)に移動。 -
R
で置換モード
に切り替え。-
, b<Esc>
で. B
を, b
に置換。
-
chapter_code/3_insert/insert_mode/replace.txtTyping in Insert mode extends the line, but in Replace mode the line length doesn't change.
-
最後に
前回のノーマルモード
に比べ、挿入モード
は一般的なエディタに近く馴染み深かったと思います。
前回も記載しましたが、イメージとしては、日々のコーディングが挿入モード
です。
コーディングのための準備がノーマルモード
です。
モードの切り替えはVim
を扱う上でストレスになる要因のため、挿入モード
以外も積極的に使用して慣れることをおすすめします。
モードの特性を理解することで、Vim
が更に強力なエディタとなります。
最後に紹介した置換モード
ですが、r
コマンドで 1 文字だけ置換できます。
使用シーンによりますが、ちょっとした置換が多い場合は是非お試しください。
また、本記事で紹介したコマンドを実際に試してみることを強くおすすめします。
最後まで閲覧頂きありがとうございました。
本記事がお役に立てば幸いです!
次回ビジュアルモード
参考書籍
参考 URL
-
Vim
に限らずbash
のコマンドラインでも使用可能。 ↩