最強カラースキームと言えば Solarized だよね!

121023-0001_mod.png

エンジニアだと一日の大半をターミナルやエディタの画面を見つめて過ごす人も多いと思いますが、そういう人(僕含む)にうってつけなのが Solarized

これは、目に優しいカラースキーム決定版!とも言えるものです。ターミナルだけでなく、Mac、Windows 用の各種エディタ向けの設定も含まれています。

Solarized を使うと、通常はこんな感じでどぎつい色使いのターミナルが、

121020-0007.png

こんな感じになります。

Continue reading

【vim】インサートモードでカーソルを目立たせる

vim ではモードが重要です。特にノーマルモードインサートモードの 2 つは、現在自分がどちらにいるのかを常に把握していないといけません。

以前紹介した Powerline はステータスバーを目立たせることでこれを実現していました。

【Vim】Powerline でリッチなステータスラインを使う – blog.delphinus.dev
https://blog.delphinus.dev/2012/01/vim-powerline.html

このプラグインは非常に優れものですが一つ問題がありました。目立つのは画面最下部ですので、インサートモード時に視点が向いているであろう、カーソル付近でモードを知る術がないのです。

Continue reading

【vim】タブを自由に移動させる


121015-0011_MOD.png

この記事に続いてタブ間を自由に移動する方法について書きましたが、タブ自体を移動させる方法が抜けていました。要するに右の図のように、タブ自体の並びを変えたいわけです。

これを関数を定義して実現しようとしたら思いの外複雑でした。

  • <Tab>n で右へ、<Tab>p で左へ移動します。
  • <count> を指定すると一気に遠くまで移動します。例: 3<Tab>n なら 3 つ右のタブへ移動します。
  • 移動できる範囲を超えたときは反対側に移動します。例: 一番右にタブがある状態で <Tab>n とすると、一番左へ移動します。
" 現在のタブを右へ移動
nnoremap <Tab>n :MyTabMoveRight<CR>
" 現在のタブを左へ移動
nnoremap <Tab>p :MyTabMoveLeft<CR>
command! -count=1 MyTabMoveRight call MyTabMove(<count>)
command! -count=1 MyTabMoveLeft  call MyTabMove(-<count>)
function! MyTabMove(c)
  let current = tabpagenr()
  let max = tabpagenr('$')
  let target = a:c > 1       ? current + a:c - line('.') :
             \ a:c == 1      ? current :
             \ a:c == -1     ? current - 2 :
             \ a:c < -1      ? current + a:c + line('.') - 2 : 0
  let target = target >= max ? target % max :
             \ target < 0    ? target + max :
             \ target
  execute ':tabmove ' . target
endfunction

関数の中では、<count> 値に現在の行番号が含まれたりすることがあるんですけど、どういうわけですかね? これがなければもう少し簡潔になったのですが。

【Vim】Putty + Ricty + Proggy で快適コーディング

2012-09-23_133624.png

その昔、【GVim】Proggy + Osakaで快適コーディングという記事を書いたのですが、当時から 2 年も経って Putty + Vim な環境もずいぶん変わりました。個人的にエポックメイキングと言えるのが次の 2 点です。


Putty D2D/DW がリリースされた。
SSH クライアント Putty の派生版です。特長は Windows7/8 上でのフォントレンダリングに DirectWrite を使用したものを選べることです。これにより、Windows においても(フォントさえ選べば)Mac 並みに美麗な表示が出来るようになりました。
Ricty が公開された。
プログラミング用としては決定版とも目されるフォントです。元から人気の高かった InconsolataM+ フォントを組み合わせ、更にいくつかのカスタマイズが施してあります。これで、日本語環境でも快適なターミナル環境が使えるようになりました。

両者を組み合わせることでお手軽に快適な環境が得られるわけですが、ここはもう少し踏み込んで自分好みの環境にしてしまいたいところです。

つまり何が言いたいかというと、

半角フォントはやっぱり Proggy Clean の方がかっこいい!

ってことです。そこで Ricty の半角フォントだけを Proggy Clean に置き換えてみました。誰得なんでしょうね? まさに俺得です。

Continue reading

vim ではタブが使えるんですよ!

みなさん vim7 から搭載されたタブ機能は使ってますか?

なんか周り見てみると相変わらずコマンドラインから vim filename.txt で起動して一つ編集したら終わり→次のディレクトリへ……って人が多いんですよね。

別にそれでかまわない、もとい、vim とは本来そういうもんだという人も多いのでしょうが、今や unite や vimfiler などの優れたプラグインも多く、vim を一つ起動すれば、ディレクトリを縦横無尽に行き来していろんなファイルを編集できると思うんです。

せっかくだから、俺はこの Unite + vim-ref を選ぶぜ! – blog.delphinus.dev
https://blog.delphinus.dev/2010/12/vim-ref-with-unite.html
vimfilerとUniteでVimをファイラとして使用する方法 | karakaram-blog
http://www.karakaram.com/vim/vimfiler/

ただそうなると、標準のタブ機能は表示もキーバインドも簡潔すぎて不十分です。今回はカスタマイズで少しだけタブ機能を使いやすくしてみました。

Continue reading

【Vim】目的の行に素早く移動する(相対行番号と easymotion プラグイン)

120819-0006.png

vim では移動、編集に行数を指定することがよくあります。そのために行番号を画面に表示して 5j 5 行下へ移動d6k 6 行上まで削除などとするわけですが、パッと見て目標を 5 行下6 行上などと見積もることはなかなか難しいです。

そこでオススメなのが相対行番号です。これは現在カーソルがある位置から見て何行離れているかを画面に表示します。.vimrc 内で set number などと指定する代わりに set relativenumber と入力すると有効になります。

set relativenumber

Continue reading