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

Vim のオプション設定をバッファに挿入する

$
0
0

はじめに

Vim で試しにオプション設定を行い、それが良かったので vimrc に書こうとした際にその設定内容が手入力するには長かったり複雑だったりして困ったことはないでしょうか。
set {option}?の結果などをバッファに挿入できれば…と思って調べて回った結果その方法が見つかったので書きます。

使用する機能

以下の機能を使います。

  • レジスタの内容を挿入(i_CTRL-R)
  • Expression レジスタ
  • execute コマンド

詳細

レジスタの内容を挿入

インサートモードでレジスタの内容を挿入するには CTRL-Rを入力したあとにレジスタ名を入力します。

Expression レジスタ

レジスタには番号のレジスタ以外に特別なレジスタがあり、その一つが Expression レジスタです。
インサートモードで CTRL-Rを入力したあとに =を入力するとコマンド行に式を入力できるようになります。式を入力してEnterキーを入力すると式が評価されてその結果が挿入されます。

execute コマンド

Exコマンドを実行して出力を文字列として返すコマンドです。

オプション設定をバッファに挿入する

上記の機能を組み合わせることで Vim のオプション設定をバッファに挿入することができます。

  1. インサートモードに入る
  2. CTRL-Rを入力
  3. =execute("set {option}?")を入力
  4. Enter キーを入力

例えばインサートモードで CTRL-Rを入力した後、以下のように入力すると

=execute("set guifont?")

以下のような結果がバッファに挿入されます。

  guifont=Osaka-Mono:h14

実行してみればわかりますが、なぜか直前に空行が挿入されます。
これについては理由がわかっていません。(知っている方がいらっしゃったら教えて欲しいです…)

最後に

ちょっとした小ネタではありますが、これで vimrc の編集が少し楽になる場合があるんじゃないかなと思っています。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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