koturnの日記

転職したい社会人2年生の技術系日記.ブログ上のコードはコピペ自由です.

Vim

Vim scriptのinputlist()で<Esc>を検出する方法

Vim

以前書いた記事:Vim scriptのinput()で<Esc>を検出する方法にて,inputlist()で<Esc>を検知できない(数値0の入力と区別できない)と書いた. しかし,改めて考えてみると,inputlist()をgetchar()を用いて再実装すれば,簡単に<Esc>を検知できるinputlist()ができあがると</esc></esc></esc>…

Vimを起動している時間を計測したい

Vim

僕は頻繁にVimを終了しているわけではない. ある程度Vimに閉じこもり,必要に応じてシェルに移動したりする. 簡易な処理ならば,vimshell.vimで済ませることも多い. また,Vimを起動したままPCをスリープさせることもよくある. tmuxの1つのペインでVimを…

Vimプラグインの動作確認をしたい

Vim

Vimプラグインを書いていると,新規にVimを起動して,動作を確認したいことがある. そこで,c0hamaさんのこの記事を参考にして,.vimrcに function! s:plugin_test(use_gvim, ex_command) abort let cmd = a:use_gvim ? 'gvim' : 'vim' let ex_command = em…

Vim scriptにおける関数のコピーと削除

Vim

実用的ではない小ネタを紹介しようと思う. それは,Vim Scriptにおける関数のコピーとリネームである. Vimでは,function [関数名]というコマンドを実行することで,関数の定義を行番号付きで見ることができる. 従って,これをredirすれば関数定義を文字…

Vimで実行に失敗したら,自身を削除するコマンドを定義する

Vim

自作のVimプラグインで,ctrlp.vimの拡張を作成したとき,plugin/hoge.vimにて, command! CtrlPHoge call ctrlp#init(ctrlp#hoge#id()) のような定義をする. しかし,ctrlp.vimの拡張はオプショナルであり,必須ではない. ユーザの中には,CtrlPを導入し…

Vimで作成する新規ファイルのパーミッションを自動的に変更する

Vim

僕はWindowsを用いる場合,KaoriYaのgvimと,Cygwinのvimを用いている. そして,Cygwinのgitを利用している. Cygwinであれば,新規に作成されるファイルのパーミッションは644であるが,Windowsだとパーミッションが700となるのが気にくわなかった. とい…

Vim scriptのinput()で<Esc>を検出する方法

Vim

Vimプラグインを作っているときに,input()で<Esc>キーを感知できればいいなと思ったのがきっかけである. どうやら,ここに書いてあるinput()のラッパー関数を使えばOKのようだ. function! s:input(...) abort new cnoremap <buffer> <Esc> __CANCELED__<CR> let ret = call('inp</cr></esc></buffer></esc>…

Cygwinのvimを快適に使う

今日は、Cygwinのvimについて書いてみようと思う。 内容としては、以下の4点である。 1. 使用ターミナルによる挙動の違い 1-1. minttyとコマンドプロンプト 1-2. Terminal type(オプション:termの値)による違い 2. Altキーと併用するキーバインド 3. 挿入モ…

Vimからのvimdiffを便利にしたい

Vim

Vimには、vimdiffという機能がある。 これは、Vim上でファイルの差分を確認するものだ。 vimdiffの利点は、 vimでファイルの差分を確認できる 差分をハイライト表示しており、視覚的で見やすい 比較ファイルのスクロールが協調して動作する といったものがあ…

WindowsのコマンドプロンプトでVimを使う

Vim

私はWindowsユーザであり、WindowsでもVimを使う。 しかし、WindowsのコマンドプロンプトでVimを使うのは、どうにも不便だと感じていた。 というのも、コマンドプロンプトのサイズの変更が面倒だからであろう。しかし、 set lines set columns で値を指定す…

NeoBundleのインサートモード時遅延読み込みの注意点

Vim

この前、Gistに投稿した記事だが、どうせなので、はてなの方にも投稿しておこうと思う。 元はこちら:https://gist.github.com/koturn/5929673 NeoBundleでインサートモード時に遅延読み込みすると、インサートモード時にステータスラインの色を変更するとい…