Vimテクニックバイブル

ここには特に書いてなかったのですがVim関連本の原稿を執筆しました。 複数著者による、初心者〜中級者向けの(主にプラグインで)環境改善がテーマのVim本です。 おかげさまで増刷決定しました :-DVimテクニックバイブル 〜作業効率をカイゼンする150の技 Vim…

vimで休日表示付きのカレンダーを使う

calendar.vimを使うとVim上にカレンダーを表示する事が可能です。 ただデフォルトでは休日表示がされていないため、個人的にはほとんど使っていませんでした。 諸事情から休日表示付きのカレンダーがVim上に欲しいと思って、calendar.vimのソースを見てみた…

[vim][tips] VimとIBusの vi協調モード

IBusには vi協調モードがありますがVimを使っていたら、どうもバグ臭い挙動があって気になるので対処してみました。 具体的には次のような挙動です。 挿入モードへ IMオン なにも入力しないでノーマルモードへ IMはオンのまま 何か入力するとちゃんとノーマ…

[Linux][tips] iBusでIMのOn/Offを個別制御

最近UbuntuをクリーンインストールしたらIMのデフォルトがIBusになっていました。 IBusではIMのOn/Offを個別設定できないようなので「変換」キーと「無変換」キーでIMをON/OFFみたいなことができません。 とりあえずUbuntuにはデフォルトでPythonがインスト…

vimから Evernoteへ登録(Windows)

vim

vimから Evernoteへ、現バッファの指定範囲/任意ファイルの内容を登録するスクリプトです。 ENScript.exe(evernoteに同梱)を使用しているので Windows専用になります。 内部エンコーディングやファイルエンコーディングは気にせず使用可能です。 vim2en_win.…

vimでファイルをHTML変換する

howm2html.vim は編集中のバッファやファイルをHTMLに変換してブラウザで開くプラグインです。 画像はサムネイル表示が行われ、一部のはてな記法はテーブルやリスト、引用などのHTMLタグに変換されて表示されます。 インストールや詳しい使い方は実際に変換…

vimで現在編集中のバッファのファイル名を変更する

以下を .vimrcに追加します。 command! -nargs=+ -bang -complete=file Rename let pbnr=fnamemodify(bufname('%'), ':p')|exec 'f '.escape(<q-args>, ' ')|w<bang>|call delete(pbnr) 変更したいファイル名を指定して実行します。 :Rename newfilename!を付けると強制保</bang></q-args>…

vimで内容が空のファイルを保存したら自動で削除する

vim/gvimで開いたファイルを削除したい時があります。 :Explore や shellコマンドでも良いのですが、単純にファイルの中身を全削除して保存したらファイル自体も削除するように設定しています。 以下を .vimrcに追加します。 augroup BUFWRITE_POSTDELETE au…

QFixGrepとQFixHowmのアップデート(Ver.2)

QFixGrepと QFixHowm Ver.2へのメジャーアップデートを行いました。詳しいアップデート内容については以下を参照して下さい。 「QFixGrep QFixHowm Ver.2」 Ver.2ではQuickfix関係の処理を必要最小限(プレビューと絞り込み)のみ行うように変更しました。 Ver…

JpFormat.vim から外部ビューアを開く

vim/gvim用日本語整形プラグインJpFormat.vimで整形しながら編集しているファイルには連結マーカーが埋め込まれています。 このため青空文庫ビューアのような外部ビューアを起動して縦書き表示で確認するような場合、ルビや制御用スクリプトなどの途中に連結…

vimで日本語を禁則処理などの整形をしながら編集する

JpFormat.vim は vim/gvimで日本語の禁則処理を行いながら、規定の原稿形式にフォーマット整形するプラグインです。 vimでのメールの下書きや、青空文庫の小説などの長文を読むような場合に整形してやると読みやすさが結構違ってきます。JpFormat.vimの大き…

vimで階層付きテキストをアウトラインプロセッサ風に表示する

行頭の . の数で階層を示す、いわゆる「階層付きテキスト」を vim/gvimで閲覧する時に折りたたみを使用するとアウトラインモードっぽく閲覧できて結構便利です。 .vimrcに以下を追加してやると txtファイルで行頭に . や * = がある行の間を折りたたみます。…

Linuxのgvimで日本語入力を使いやすくする

vimで日本語入力する時に一番問題になるのはIMの切替です。 とくにLiunxの場合アプリケーションからの入力モード変更が出来ないIMもあり、vimの挿入モードで日本語入力のためにIMをONにしてから でノーマルモードに戻ると、IMがOFFにならないので切替が面倒…

vimで縦に連番を入力する

vim/gvimで縦に連続した番号へ置換したいときがあります。 fuga[0] fuga[0] fuga[0] これを次のように変更したりする場合です。 fuga[0] fuga[1] fuga[2] 適当なのが見あたらなかったので、適当に作ってみたものを使用しています。 .vimrc(_vimrc) に追加し…

QFixHowmの使い方

vim/gvim用howmプラグイン「QFixHowm」で試してみたかった機能はほとんど実装して、使用方法も定まってきたので自分なりの使用法をまとめてみます。 具体的な設定については「QFixHowmの.vimrc設定」にまとめてあります。 QFixHowmは断片的なアイディアをメ…

vimでhowm形式の予定・TODOをアラーム表示する

vim/gvimのCursorHoldを使用した、テキトーな予定・TODOアラーム表示プラグインです。 howm形式の予定・TODOで指定した時間になると、コマンドラインに予定やTODOなどのメッセージを表示します。 アラーム時間指定にhowmの予定・TODO形式を使用しているだけ…

QFixHowmと、はてなのsuper preハイライト

はてなのsuper pre記法をvimのQFixHowmでも使用しています。 当然ハイライト表示も変更したいので、g,.でファイルタイプを変更できるようにしています。 実行するとカーソル行の前後からsuper preの定義を探して、該当するファイルタイプへ変更します。 もう…

calendar.vimとQFixHowmで日記を書く

vim/gvim用カレンダー表示プラグインのcalendar.vimには、日記を書く機能がついていて、外部の日記プラグインも利用できるようになっています。 これを利用して、カレンダー表示からQFixHowmを日記用のプラグインとして使用するスクリプトを作成してみました…

WindowsでMacキーボードの「英数」と「かな」を使う

MacのキーボードはWindowsでも基本的には繋いでそのまま使えるのですが、「英数」と「かな」はWindowsからみるとキーダウン信号が無くて、キーアップしかないちょっと特殊なキーになっています。 押しっぱなしが出来ないので、IMEの切替ぐらいにしか使えない…

vimの「最後に編集した」関係のコマンド

編集作業しているとき、最後の編集位置というのはかなり重要度が高いのではないかと思います。 vimには gi `[ `` `自分としては最後に内容変更したカーソル位置へジャンプする `. と、編集位置をさかのぼる g; をメインに使用と言うあたりで落ち着きました。…

vimのキー入力で自動補完

vim/gvim用の最低限のオプションのみの自動補完です。 キー入力する度に補完候補を表示します。 デフォルトでは挿入モードにはいるとsmartcaseが解除され、挿入モードを抜けるとsmartcaseが設定されます。 自分的に補完時は大文字小文字を気にしたくないから…

Windowsのgvimで日本語入力を使いやすくする

vim/gvimでは日本語が使いにくいと言われます。 しかし挿入モードのみで扱っている場合、違いが出るわけではありません。 簡単な移動や編集はカスタマイズして一通りのことは出来ます。(Emacs風なカスタマイズ例) ただしノーマルモードと挿入モードを頻繁に…

vimで n. を回数指定して実行する

ここからちょっと怪しくなります。 let @n='n.' これを .vimrc か、コマンドモードから定義してやると、 @n コマンドが回数指定可能な n. になります。 n は好きなレジスタでかまいません。 「カーソル位置の単語とヤンクした文字列を置換する」の cy の後な…

vimでカーソル位置の単語とヤンクした文字列を置換する

個人的によくやるのがこれです。 nnoremap <silent> ciy ciw<C-r>0<ESC>:let@/=@1<CR>:noh<CR> nnoremap <silent> cy ce<C-r>0<ESC>:let@/=@1<CR>:noh<CR> vnoremap <silent> cy c<C-r>0<ESC>:let@/=@1<CR>:noh<CR> 置換に使いたい文字列をヤンクしておきます。 置換したい単語まで移動します。 cyかciyを実行します。 カーソル位置の単語が</cr></cr></esc></c-r></silent></cr></cr></esc></c-r></silent></cr></cr></esc></c-r></silent>…

vimの検索 * # を使いやすくする

検索で # を使っていますか? 私は使っていません。 n N で繰り返す時、逆になって面倒くさいからです。 vimのヘルプかなんかで、方向を変えたいときには n N ではなく # と * で切り替えると便利とありました。 # は左の中指で押す、 * は右の中指で押す、…

cygwin 1.7のgrepをWindowsのコマンドプロンプトで使用する

cygwinの1.7がテストバージョンとして公開されている。 http://cygwin.com/setup-1.7.exe cygwinがUTF-8化するとか大文字と小文字を区別するとかで結構変わっているらしい。 grepはというとUTF-8の日本語文書がgrep出来たとか、こちらも結構変わっているそう…

vimのヤンク履歴とヒストリ貼り付け

どうしてもエディタに欲しい機能というのは人によって違うと思います。 自分的にはヒストリ貼り付けがその一つです。 「3行目と5行目と12-14行目をコピーして、20行目にコピーした順番通り貼り付ける」とか。 vimだとヤンクした履歴は残りませんが、削除履歴…

QFixHowmの.vimrc設定

vim/gvim用howmプラグインQFixHowmで実際に使用している.vimrcの設定を書いておきます。 最低限必要なのはruntimepathの設定だけです。 作者の具体的な使用法については「QFixHowmの使い方」にまとめました。最初はタイトル行に常にカテゴリーを指定できるよ…

QFixGrepの.vimrc設定

vim/gvim用grepプラグインQFixGrepで実際に使用している.vimrcの設定を書いておきます。 " unix,win32でのPathの違いを吸収 if isdirectory($HOME . '/.vim') let $MY_VIMRUNTIME = $HOME.'/.vim' elseif isdirectory($HOME . '\vimfiles') let $MY_VIMRUNTI…

QFixGrepとQFixHowm

これまで某社でひっそりと公開していたvim用プラグイン QFixGrep と QFixHowm をアップしました。 QFixGrep プレビューと絞り込み検索付きの日本語grepプラグイン。 外部grep使用時でもUTF-8やcp932の日本語検索ができます。 ついでに外部grepのsjisだめ文字…