はじめに

この記事は,SLP KBIT Advent Calendar 2017 4日目の記事です.

Vimで英語を書くときに便利なテキストオブジェクト

コードを編集する上では,あまり使われないが英文を書く上で便利だと自分が感じるテキストオブジェクトの紹介をします.

sentence

[motion]is or [motion]as で分単位のテキスト操作ができます.
[motion]y がヤンク,dが削除,cが変更など.

operatorは, i (inner) や a (a) などがありますね.

覚え方は,sentence inner yank, sentence a change みたいな感じです.

gifアニメの例では,yank しています.

b.gif

vim内における文の定義は,:h sentence で確認できます.
簡単に要約しておきますと, '.', '!', '?'のどれかの文字が存在し,その文字のあとに空白 or タブ文字があるとき,その箇所が文の末尾となります.

paragraph

[motion]ip or [motion]ap で段落単位のテキスト操作ができます.

b.gif

段落はそれぞれ空行の後または,段落マクロのセットから始まります.
段落マクロは 'paragraph' オプションで指定されている,文字のペアです.
デフォルトでは IPLPPPQPP TPHPLIPpLpItpplpipbp です.
(nroffマクロと言うものらしい)空行は,段落の区切りではない.(helpより)

同じ単語を探す

*

これは,英文を読むとき,書くときに限らずよく使います.
カーソルを探したい単語の上に持っていき,* を押下.
再度 * を押すことで次のヒットに移動することもできます.
# は逆方向になります.

b.gif

検索の応用

/

Vim の検索といえば / です.これは皆さんご存知だと思います.
実は,検索時にカーソルのoffsetを設定することができます.
これを応用すると,ある単語のあとに単語を挿入するということを連続したい場合,楽ができます.

例えば,theのあとにhogeを挿入したい場合,

/the/s+3<CR> した後に,
aで 挿入モードに入り,
hoge を入力し
あとは,n.n.n.n. を繰り返すのように使えます.

b.gif

これと同等のことは,置換でも可能です.

b.gif

スペルチェックをおこなう

Vimはデフォルトでスペルチェック機能を持っています.
これはスペルに自信がない自分にとって,非常にありがたく重宝しています.

スペルチェックは, :set spell で可能です.
日本語混じりな環境で使用する可能性がある場合は,vimrcに次の設定を書いてきましょう

vimrc
set spelllang=en,cjk

スペルミスと思われる単語の箇所の上で, z= を押下することで修正候補一覧から単語を選択し,
修正することができます.

b.gif

スペルミスしている単語には,]s (前方検索) や [s(後方検索) でジャンプすることができる.
また,zg で 単語を辞書に追加することもできる.

b.gif

(備考 : 上のデモでは デフォルトだとスペルミスと判定される単語が一部辞書に登録済みになっています)

スペル補完する

<C-x>s で スペル補完を行うことができます.ユーザーが追加した単語も
保管することができます.

b.gif

自分はこれはあまり使わず,間違えていてもいいのでそれっぽいスペルで単語書いてからz=することのほうが多いです.
プラグインなどと組み合わせて自動補完を有効にすると良いかもしれません.

単語の意味を即座に調べる (OSX only)

vimrcに次のような設定を記述する

vimrc
nnoremap ,? :!open dict://<cword><CR>

そして,意味を調べたい単語の上で ,? を押下すると,macにプリインストールされている
辞書が立ち上がり意味を確認することができる. [1]

b.gif

グーグル翻訳する

haya14busa/vim-open-googletranslate というプラグインを導入すれば,Vim内から素早くグーグル翻訳を立ち上げることができます.

b.gif

参考