Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

.vimrcでfor文を使ってDRYに書く

$
0
0

はじめに

  • vimrcでfor文をうまく使う方法が調べてもすぐにでてこなかったのでまとめました。
  • 筆者は駆け出しのVimmerですので、よりよい方法等ございましたらご指摘いただけますと幸いです。

本記事の対象者

  • Vimmer
  • .vimrc(or init.vim)の書き方がある程度わかるひと(noremapがわかる人であれば読めます)

先に結論

ciwとかのiを省略できるようにしたいとき、(もとのcw機能はceで代用できる)

for文を使わないと…
nnoremap cw ciw
nnoremap vw viw
nnoremap dw diw
nnoremap yw yiw
nnoremap c" ci"
nnoremap v" vi"
nnoremap d" di"
nnoremap y" yi"
nnoremap c' ci'
nnoremap v' vi'
nnoremap d' di'
nnoremap y' yi'
nnoremap c( ci(
nnoremap v(vi(
nnoremap d(di(
nnoremap y( yi(" (以下略)
for文を使うと
for each_surround in['w','t','"',"'",'(','{',"`"]for each_command in['c','d','v','y']
    execute 'nnoremap '. each_command . each_surround .' '. each_command .'i'. each_surround
  endforendfor

解説

vimscriptでのfor文の使い方

最近の言語と同じ感覚で使うことができます。

簡単な例
foriin[1,2,3]
  echo iendfor
結果
1
2
3

文字列と変数を連結

.で連結することができます。

簡単な例
let editor ='Vim'
echo 'Hello, '. editor .'!'
結果
Hello, Vim!

文字列をコマンドとして実行

executeを使います

簡単な例
let message ='I use Vim.'
execute 'echo message'
結果
I use Vim.

最後に

vimrcの行数が多い ≒ vimの熟練度が高い
という風潮がある気がします。それでも、DRYに書いて行数が減らせると見やすいし少ない変更箇所で編集できるのでおすすめです。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>