13
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Vim】実践Vimの実践 【第3章 挿入モード】

Last updated at Posted at 2023-06-11

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.txt
    Practical Vim, by Drew Neil
    Read Drew Neil's
    
    • yt,でカンマ(,)より前のテキストをレジスタにヤンク。
    • jA<Space>で次の行の末尾で挿入モードに切り替え、スペースを入れる。
    • <Ctrl + r>0でヤンクしたテキストを貼り付け。
    • .<Esc>でドット(.)を入力、挿入モードに切り替え。
    chapter_code/3_insert/insert_mode/practical-vim.txt
    Practical 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.txt
    6 chairs, each costing $35, totals $
    
    • Aで行末に移動し挿入モードに切り替え。
    • cWで「.blog」を「.news」に変更。
    • 6*35<Enter>で 6*35 の結果(210)を挿入する。
    chapter_code/3_insert/insert_mode/back-of-envelope.txt
    6 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.txt
    Typing 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.txt
    Typing in Insert mode extends the line, but in Replace mode
    the line length doesn't change.
    

最後に

前回のノーマルモードに比べ、挿入モードは一般的なエディタに近く馴染み深かったと思います。
前回も記載しましたが、イメージとしては、日々のコーディングが挿入モードです。
コーディングのための準備がノーマルモードです。

モードの切り替えはVimを扱う上でストレスになる要因のため、挿入モード以外も積極的に使用して慣れることをおすすめします。
モードの特性を理解することで、Vimが更に強力なエディタとなります。

最後に紹介した置換モードですが、rコマンドで 1 文字だけ置換できます。
使用シーンによりますが、ちょっとした置換が多い場合は是非お試しください。

また、本記事で紹介したコマンドを実際に試してみることを強くおすすめします。

最後まで閲覧頂きありがとうございました。
本記事がお役に立てば幸いです!

次回ビジュアルモード

参考書籍

参考 URL

  1. Vimに限らずbashのコマンドラインでも使用可能。

13
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?