vim( macbook pro touchBar+GoogleIME)でEscでIMEキャンセル

Read More

ESC でIMEをキャンセルして英数字に変更したいのですが色々試した結果、IMEの設定で制御するのが一番ラクでした。
Kanabinerとかも使ってみたのですが Touchbar のためか上手く動かずでした。

Google IMEの 環境設定一般キー設定の選択編集 で次の2項目を追加しました。

この設定をしておくと入力中でも ESC で VIMの入力モードを切り替えることが出来ます。
最近 Ctrl+[Ctrl+c で切替に慣れていたのですが ESC で切り替わるのは安心できます。

vimで自動で{を閉じる vim-autoclose プラグイン

Read More

vimを利用していると{ や “など色々な囲む記号を入力しても自動で閉じてくれません。
最近のエディタは結構普通にこの機能がついているので物足りなかったんのでプラグインを探してみました。

deinの遅延読み込みで定義している toml ファイルで以下のように記載してみました。
使い方としては特になく、「記号」を入力すれば同時に閉じる「記号」を挿入してくれます。

# auto close 
# 自動的に{}を閉じることが出来る
[[plugins]]
repo = 'Townk/vim-autoclose'
on_i = 1

neovim で簡単コメントアウトをするプラグイン caw.vim

Read More

色々プログラミングをしているとコメントアウトをする機会があります。
VIMの標準のキー操作でもコメントアウトをすることは可能ですがこの caw.vim は様々なファイルタイプを自動で判断してコメントを入れてくれます。
またコメントの文字を入れる場所も選択することができます。
私みたいにトライ&エラーで色々やるタイプの人には入れておいて損はないプラグインかなと思っています。

# caw comment out
# \c でコメントのon/off
[[plugins]]
repo = 'tyru/caw.vim.git'
on_i = 1
hook_add = '''
                " 行の最初の文字の前にコメント文字をトグル
                nmap c (caw:hatpos:toggle)
                vmap c (caw:hatpos:toggle)
                " 行頭にコメントをトグル
                nmap , (caw:zeropos:toggle)
                vmap , (caw:zeropos:toggle)

'''

実際には \ になります。 \c で最初の文字の前に。 \, で文頭にコメントアウト記号が挿入されます。またコメントアウトされている場合にはコメントアウトを削除する動きとなります。

追記
* 2018/03/07 tyruさんからコメント頂き利用していたマッピングが古かったので修正しました。

neovim での git 環境

Read More

Gitプラグインは特に珍しいものではなく定番ものを2つ程いれてみています。

更新箇所にマークを付ける

[[plugins]]
repo = `airblade/vim-gitgutter'

マーク付いてくれるだけで便利です。次の変更箇所には ]c[c でジャンプすることが出来ます。

Gitのコマンドを実行する

[[plugins]]
repo = 'airblade/vim-gitgutter' 
hook_add = '''
   " 分割画面を縦にする
    set diffopt+=vertical
'''

こちらも代表的なプラグインの一つです。普段から使うのは1つ、2つにですがやはり直接gitコマンドが実行できるのは便利です。
主に利用するのは :Gstatus:Gdiff になります。Gstatusはリストから add / commit が出来るので楽ちんですね。私は git のブランチを作ったりそういったことはターミナルからコマンドで実行しているので主にvim上でのgitの操作は直接差分が見たいときなど編集中に行いたいことになりますのでこの機能で十分満足しています。diffの画像を立て分割にするためにオプションを設定しています。

Vim + ALE + textlint で校正

Read More

先日 Ale + Redpen を試してみましたがこれまで textlint を使っていたので ale に textlint サポートを追加してみました。
textlint が導入されており、カレントディレクトリに .textlintrc がある場合には textlint が動きます。

やっつけで追加しておいたけど一応動いたので PullRequest をしておいた。
追加すると動くコードはこちらを参考にしてください。

カレントに .textlintrc がない時は動かさないという判断をするのがどこでしてよいか分からずShellで書いちゃっていますが。

追記

  • 2018/03/24 リクエストしていた追加したものがマージされていますのでそのままで ALE を入れればそのまま使えます。
  • エラー内容がQuickfixで表示されますが本体をクローズしたらQuickfixがそのまま残っていることがありますので以下のコードを init.vim に追記しておくと一緒に閉じてくれます。
"Quickfixが残っている場合に閉じる
augroup QfAutoCommands
  autocmd!
        " Auto-close quickfix window
        autocmd WinEnter * if (winnr('$') == 1) && (getbufvar(winbufnr(0), '&buftype')) == 'quickfix' | quit | endif
augroup END