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

Vimの起動オプションでファイルにテンプレートを追記する

$
0
0

動機

bashのエイリアス/関数定義ファイルに追加する際、テンプレートを追加してから編集したい。

あるいは、下記記事でサラッと使ったオプションの補足。

Vimの起動オプション

Vim(MacVim)は、起動時に+(-c)オプションを追加することで、起動直後に指定のEXコマンドを実行させることができる。

これを利用して、バッファにテンプレートを書き込む。

使用するEXコマンド

$

最終行に移動。

:$

+(数字)/-(数字)

(数字)行下/上に移動。

:+1:-10" これだと10行目に移動:10

a

続けて入力したテキストをカレント行の下に追加。

EXモードでは同じ方法は使えないが、起動オプションではパイプを使ってワンライナーで表現できる。

$ vim hoge.txt +"a|aaa"

EXモードで実行すると、入力を求められた後、'aaa'コマンドが実行される(エラーになる)。

なお、EXモードでaコマンド(iコマンド)でテキストを挿入するには、コマンド実行後にテキストを入力してから、⌃+cを押す。

:a|aaa

bashで改行すれば複数行のテキストも挿入できる。ただし、関数またはシェルスクリプトでインデントすると、インデントごと挿入される。

# >はヒアドキュメントのプロンプトであり入力テキストではない$ vim hoge.txt +"a|aaa>   bbb # この行はインデントされる> ccc"

normal(norm)

引数をノーマルモードのコマンドとして実行。行内の移動や、空行の挿入に便利。

" 行末に移動:normal $

" ;の位置に移動:normal f;

" 空行を挿入:norm o

ただし、この方法で挿入モードに変更することはできない。

" 何も起こらない(0文字を挿入する):normal i" hogeを挿入する:normal ihoge

r (!)

ファイルの内容、または外部コマンドの実行結果をカレント行の下に追加。

調べたので書いたが、今回は使わない。

bashの関数定義ファイルに雛形を追加する例

function-init.bash
# in ~/.bashrc
# export bash_function=~/.bash/conf/function-init.bash
# source "$bash_function"

afunc () {
  vim "$bash_function" +$ +"a|$1 () {" +"a|  " +"a|}" +-1 +"normal $"
  source "$bash_function"
}
$ afunc somefunc

Viewing all articles
Browse latest Browse all 5608

Trending Articles



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