Vim

jq コマンドを使って Vim で選択した範囲の JSON をフォーマッティングする

Vim

書いてみた。 " 選択した範囲を jq コマンドを使ってフォーマッティングする " 範囲選択しない場合は現在の行を対象とする command! -range JSONFormatter :<line1>,<line2>!jq . べんり。 別途 jq 外部コマンドが必要なので注意。</line2></line1>

defx.nvim でカーソル移動をするたびに preview ウィンドウを開く

Vim

defx.nvim で auto-preview 的なことをやってみた。 augroup my-defx autocmd! autocmd FileType defx call s:defx_my_settings() augroup END function! s:defx_my_settings() abort augroup ftplugin-my-denite autocmd! * <buffer> autocmd CursorMoved <buffer> call def</buffer></buffer>…

defx で絞り込みしつつ dentie-file/rec を起動する

Vim

defx で絞り込みしつつ dentie-file/rec を起動する defx で find っぽいことをしたかったので設定した。 単に :Denite file/rec -input=ファイル名 を起動しているだけ。 :Defx -auto-cd で起動しておく必要があるので注意。 " NOTE: auto-cd を有効にして…

denite.nvim の denite-menu を使って簡単にファイルを開いたりする

Vim

dentie-menu を使うことで簡単に自分好みのショートカットを設定する source を定義することができます。 " denite-menu の設定 let s:menus = {} " Denite menu:dotfile をすると開くファイルを登録する let s:menus.dotfile = { \ 'description': 'Edit yo…

Vim の oldfiles の最大数を変更する

Vim

Twitter でいろいろとやり取りしていたので覚書。 参照:ミニマリストな Vimmer におすすめしたい履歴管理プラグイン oldfilesearch.vim - Humanity Vim の oldfiles の最大数を変更する Vim oldfiles の保存数は 'viminfo' の ' の設定に依存しています。 …

denite.nvim で絞り込みにマッチしたワードをハイライトする

Vim

ちょっと前に denite.nvim を試してみたら思ったよりも使えるようになったのでいろいろと試してみた覚書。 denite.nvim で絞り込みにマッチしたワードをハイライトする denite.nvim ではデフォルトでは絞り込んだワードでハイライトできなくて困ってたんです…

使ってる Vim プラグインを紹介する:コマンドの出力結果をバッファで表示する

Vim

気が向いたら書いていくシリーズ。 capture.vim でコマンドの出力結果をバッファで表示する capture.vim を使うとコマンドの出力結果をバッファ上で表示することができます。 使い方は簡単で :Capture 任意のコマンド をするだけです。 :Capture echo "hello…

使ってる Vim プラグインを紹介する:行番号を指定してファイルを開く

Vim

気が向いたら書いていくシリーズ。 よく考えたらアドベントカレンダーで書けばよかったのでは…? 行番号を指定してファイルを開く file-line このプラグインを入れると vim コマンドでファイルを開くときに $ vim index.html:20 のように行番号を指定して開…

使ってる Vim プラグインを紹介する:カーソル下の単語をハイライトする

Vim

気が向いたら書いていくシリーズ。 t9md/vim-quickhl カーソル下の単語をハイライトするプラグインです。 ハイライトされた単語は表示されているウィンドウすべてに反映されます。 # スペース + m でカーソル下の単語をハイライトする nmap <Space>m <Plug>(quickhl-manua</plug></space>…

Vim 8.2 で Vim script に -> 演算子が追加された

Vim

Vim 8.2 で Vim script に -> 演算子が追加されました。 これは f(x, y) を x->f(y) という風に書くための演算子になります。 例えば echo map(filter(range(1, 10), { -> v:val % 2 == 0 }), { -> v:val * v:val }) というようなネストしている関数呼び出し…

Vim 8.2 で Vim script の辞書のキーの定義が簡略化できるようになった

Vim

Vim script で辞書を定義する場合、次のようにキーを文字列リテラルで定義していました。 let dict = { "one" : 1, "two" : 2, "three" : 3 } echo dict " => {'one': 1, 'two': 2, 'three': 3} Vim 8.2 では上記のような定義を以下のように定義する事ができ…

Vim 8.2 で Vim script に :const が追加された

Vim

Vim 8.2 で Vim script に :const が追加されました。 これは変数を定義する :let と同じように使用し、定義した変数を不変にします。 例えば const x = 42 は let x = 42 lockvar 1 x と同等になります( lockvar の 1 は depth の指定 これにより const を…

Vim 8.2 で Vim script にヒアドキュメントが追加された

Vim

Vim 8.2 で Vim script でヒアドキュメントがかけるになりました。 使い方は以下の通り " END ~ END の間のテキストを行ごとのリストとして返す let s:text =<< END if cond echo "homu" endif END echo s:text " => [' if cond', ' echo "homu"', ' endif']…

deoplete.nvim をいれてみた

Vim

完全に食わず嫌いっていうか現状の neocomplete.vim で満足していたんですが、稀によく補完が重すぎてアイエエエエエとなることがあるので、重い腰を上げて deoplete.nvim を入れてみました。 導入 NeoBundle "Shougo/deoplete.nvim" NeoBundle "roxma/nvim-yarp" N…

Vim 8.1 がリリース!!

Vim

朝起きたら Vim 8.1 がリリースされていました。 Vim 8.0 のリリースが 2016/09/12 なので約1年8ヶ月ぶりとなるリリースです。 大きな追加点としてはやはり :terminal が実装されたことですかね。 わたしは :terminal はクソだと思っているんですが、リリー…

Vim script でいい感じにデバッグ出力する

Vim

Vim script でデバッグ出力を行いたい場合、以下のようなスクリプトを定義しておくことで『変数名:値』みたいな出力をすることが出来ます。 command! -nargs=* \ Debug \ try \| echom <q-args> ":" string(<args>) \| catch \| echom <q-args> \| endtry 使い方 let hoge = 42 " </q-args></args></q-args>…

【一人 vimrc advent calendar 2017】vimrc を拡張するコツ【25日目】

Vim

一人 vimrc advent calendar 2017 25日目の記事になります。 今日で終わりっ!! と、言うことで vimrc を拡張するコツみたいなものを。 vimrc を設定する目的 vimrc を書こう!って言っても最初はどういう風に書けばいいのかわからないと思います。 Vim は…

【一人 vimrc advent calendar 2017】キーマッピングの注意点とか【24日目】

Vim

一人 vimrc advent calendar 2017 24日目の記事になります。 今日はクリスマスイヴですね。 ケーキを買いに行ったら売り切れていましたかなしい。 モードごとのキーマッピング さて、気を取り直して…。 Vim はモードごとに操作が分けられているのはご存知だ…

【一人 vimrc advent calendar 2017】gvimrc について【23日目】

Vim

一人 vimrc advent calendar 2017 23日目の記事になります。 そういえば、gvimrc について書いてなかったので簡単に書いてみようかと。 GUI 版 Vim GUI 版の Vim を起動するには環境にもよりますが gvim コマンドを使って起動させる事が出来ます。 これによ…

【一人 vimrc advent calendar 2017】タブページを操作するキーマッピングいろいろ【22日目】

Vim

一人 vimrc advent calendar 2017 22日目の記事になります。 もうすぐ Advent Calendar も終わりですね…。 タブページを操作するキーマッピングいろいろ さて、わたしは基本的にタブページごとにファイルを開いているのですが、そのタブページを扱うキーマッ…

【一人 vimrc advent calendar 2017】コマンドを実行した際にカーソル位置を移動させないスクリプト【21日目】

Vim

一人 vimrc advent calendar 2017 21日目の記事になります。 そろそろネタが枯渇してきているのですが、今日 vimrc から便利そうなスクリプトを発掘したのでそれの初回でも。 カーソル位置などを移動させないでコマンドを実行するスクリプト 元々、他の方の …

【一人 vimrc advent calendar 2017】autocmd FileType 時に設定を追加する場合の注意点【20日目】

Vim

一人 vimrc advent calendar 2017 20日目の記事になります。 前回filetype の設定に関する記事を書いたのですが、今回はそれに関係するお話。 autocmd FileType 等で設定するときの注意点 autocmd FileType などで『任意の filetype に対して』設定を行う際…

【一人 vimrc advent calendar 2017】Vim から git commit する【19日目】

Vim

一人 vimrc advent calendar 2017 19日目の記事になります。 そろそろネタが尽きてきてそう。 Vim から git commit する さて、Vim を使っているとその場でファイルを編集して、そのままファイルをコミットしたいと思うことが多いと思います。 そういう時に…

【一人 vimrc advent calendar 2017】現在の filetype に対して簡単に設定を追記する【18日目】

Vim

一人 vimrc advent calendar 2017 18日目の記事になります。 filetype に対する設定 さて、vimrc で任意の filetype に対して設定を行う場合、以下のように autocmd を使用することが多いです。 " filetype=cpp に対する設定 autocmd Filetype cpp setlocal …

【一人 vimrc advent calendar 2017】:set でオプションの値を設定する方法いろいろ【17日目】

Vim

一人 vimrc advent calendar 2017 17日目の記事になります。 今回は :set にまつわるお話。 :set でオプションの値を設定する方法いろいろ さて、通常 Vim のオプションは :set コマンドを使用して任意のオプションに対して設定を行います。 " オプションに…

【一人 vimrc advent calendar 2017】vimrc で set nocompatible を行うケース【16日目】

Vim

一人 vimrc advent calendar 2017 16日目の記事になります。 ちょっと遅れてしまいすみません…。 さて、以前『vimrc で set nocompatible を行う必要はない』と書きました。 しかし、set nocompatible するべきケースがあったのでちょっと紹介してみます。 V…

【一人 vimrc advent calendar 2017】ノーマルモードで編集するキーマッピングいろいろ【15日目】

Vim

一人 vimrc advent calendar 2017 15日目の記事になります。 今回はノーマルモードでよく使っているバッファを編集するキーマッピングの紹介を。 キーマッピング " スペースを挿入 nnoremap <C-Space> i<Space><Esc><Right> " カーソル位置の上に改行を挿入 " カーソル位置のテキストを下</right></esc></space></c-space>…

【一人 vimrc advent calendar 2017】:set と :setlocal の違い【14日目】

Vim

一人 vimrc advent calendar 2017 14日目の記事になります。 :set と :setlocal の違い :set も :setlocal も Vim のオプションを設定するためのコマンドです。 :set はグローバルなオプションを設定するのに対して、 :setlocal はカレントバッファ/ウィンド…

【一人 vimrc advent calendar 2017】カーソル下の英数字を加減する【13日目】

Vim

一人 vimrc advent calendar 2017 13日目の記事になります 体調不良により公開が遅れてしまってすみません カーソル下の英数字を増減する さて、Vim では <C-a> でカーソル下の数値を増やしたり、<C-x> でカーソル下の数値を減らしたりする事ができます。 また、'nrfor</c-x></c-a>…

【一人 vimrc advent calendar 2017】現在のファイル名を変更する【12日目】

Vim

一人 vimrc advent calendar 2017 12日目の記事になります。 今回は個人的に使う機会が多い簡単な Ex コマンドの紹介でも。 現在開いているファイル名を変更する さて、Vim を使っていると『現在開いているファイル名を変更したい』ということが稀によくある…