はじめに
この記事は,SLP KBIT Advent Calendar 2017 4日目の記事です.
Vimで英語を書くときに便利なテキストオブジェクト
コードを編集する上では,あまり使われないが英文を書く上で便利だと自分が感じるテキストオブジェクトの紹介をします.
sentence
[motion]is
or [motion]as
で分単位のテキスト操作ができます.[motion]
は y
がヤンク, i
がinner a
が a などがありますね.
gifアニメの例では,yank しています.
vim内における文の定義は,:h sentence
で確認できます.
簡単に要約しておきますと, '.', '!', '?'のどれかの文字が存在し,その文字のあとに空白 or タブ文字があるとき,その箇所が文の末尾となります.
paragraph
[motion]ip
or [motion]ap
で段落単位のテキスト操作ができます.
段落はそれぞれ空行の後または,段落マクロのセットから始まります.
段落マクロは 'paragraph'
オプションで指定されている,文字のペアです.
デフォルトでは IPLPPPQPP TPHPLIPpLpItpplpipbp
です.
(nroffマクロと言うものらしい)空行は,段落の区切りではない.(helpより)
同じ単語を探す
*
これは,英文を読むとき,書くときに限らずよく使います.
カーソルを探したい単語の上に持っていき,*
を押下.
再度 *
を押すことで次のヒットに移動することもできます.#
は逆方向になります.
検索の応用
/
Vim の検索といえば /
です.これは皆さんご存知だと思います.
実は,検索時にカーソルのoffsetを設定することができます.
これを応用すると,ある単語のあとに単語を挿入するということを連続したい場合,楽ができます.
例えば,theのあとにhogeを挿入したい場合,
/the/s+3<CR>
した後に,a
で 挿入モードに入り,hoge
を入力し
あとは,n.n.n.n.
を繰り返すのように使えます.
これと同等のことは,置換でも可能です.
スペルチェックをおこなう
Vimはデフォルトでスペルチェック機能を持っています.
これはスペルに自信がない自分にとって,非常にありがたく重宝しています.
スペルチェックは, :set spell
で可能です.
日本語混じりな環境で使用する可能性がある場合は,vimrcに次の設定を書いてきましょう
setspelllang=en,cjk
スペルミスと思われる単語の箇所の上で, z=
を押下することで修正候補一覧から単語を選択し,
修正することができます.
スペルミスしている単語には,]s
(前方検索) や [s
(後方検索) でジャンプすることができる.
また,zg で 単語を辞書に追加することもできる.
(備考 : 上のデモでは デフォルトだとスペルミスと判定される単語が一部辞書に登録済みになっています)
スペル補完する
<C-x>s
で スペル補完を行うことができます.ユーザーが追加した単語も
保管することができます.
自分はこれはあまり使わず,間違えていてもいいのでそれっぽいスペルで単語書いてからz=
することのほうが多いです.
プラグインなどと組み合わせて自動補完を有効にすると良いかもしれません.
単語の意味を即座に調べる (OSX only)
vimrcに次のような設定を記述する
nnoremap,? :!open dict://<cword><CR>
そして,意味を調べたい単語の上で ,?
を押下すると,macにプリインストールされている
辞書が立ち上がり意味を確認することができる. [1]
グーグル翻訳する
haya14busa/vim-open-googletranslateというプラグインを導入すれば,Vim内から素早くグーグル翻訳を立ち上げることができます.
参考
- [1] : Twitter @Linda_pp