LoginSignup
59
62

More than 5 years have passed since last update.

Command Line で使用しているツールまとめ vol.7

Last updated at Posted at 2013-02-05

はじめに

今回の投稿は、主にVimSublimeText2に関する投稿です。ちなみに、SublimeText2はコマンドラインで使えるわけではないのですが...。

コマンドラインで使用しているツールを簡単にではありますが、まとめてみようと思います。前回の続きです。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。

この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。

バックナンバー

Command Line で使用しているツールまとめ vol.1

Command Line で使用しているツールまとめ vol.2

Command Line で使用しているツールまとめ vol.3

Command Line で使用しているツールまとめ vol.4

Command Line で使用しているツールまとめ vol.5

Command Line で使用しているツールまとめ vol.6

Vim

vim-submode

vim-submodeというプラグインがあります。これを使用することで、連続で入力したいコマンドがかなり使いやすくなります。例えば、ウィンドウサイズの変更です。

インストールには、neobundle.vimを使用します。filetype plugin indent onの上にNeoBundle 'kana/vim-submode'と記述してください。

~/.vimrc
filetype off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle/'))
endif

" プラグイン
NeoBundle 'kana/vim-submode'

filetype plugin indent on       " required!

そして、:NeoBundleInstallコマンドを実行します。以下、この手順については省略します。

そして、設定ファイルは以下のように書きます。

~/.vimrc
" submode.vim
" http://d.hatena.ne.jp/thinca/20130131/1359567419
" ウィンドウサイズの変更キーを簡易化する
" [C-w],[+]または、[C-w],[-]
call submode#enter_with('winsize', 'n', '', '<C-w>>', '<C-w>>')
call submode#enter_with('winsize', 'n', '', '<C-w><', '<C-w><')
call submode#enter_with('winsize', 'n', '', '<C-w>+', '<C-w>-')
call submode#enter_with('winsize', 'n', '', '<C-w>-', '<C-w>+')
call submode#map('winsize', 'n', '', '>', '<C-w>>')
call submode#map('winsize', 'n', '', '<', '<C-w><')
call submode#map('winsize', 'n', '', '+', '<C-w>-')
call submode#map('winsize', 'n', '', '-', '<C-w>+')

これで、C-w,+…を押すと、サイズを拡大でき、C-w,-…を押すと、サイズを縮小できます。ちなみに、ここでのの部分は、その前に記述したキーの連続押しを意味します。

YankRing.vim

YankRing.vimは、ヤンク履歴を参照できるようにするプラグインです。

~/.vimrc
NeoBundle 'YankRing.vim'
" YankRing.vim
" [,],[y]でヤンク履歴
" http://nanasi.jp/articles/vim/yankring_vim.html
" https://github.com/yuroyoro/dotfiles/blob/master/.vimrc.plugins_setting
nmap ,y :YRShow<CR>

ちなみに、クリップボードを共有したい場合は、以下のように書きます。この設定がないと YankRing.vim が動かないことがあるようです。

~/.vimrc
" クリップボード共有
" http://vim-users.jp/2010/02/hack126/
set clipboard+=unnamedplus,unnamed

undotree.vim

undotree.vimは、やり直し履歴を分かりやすく表示し、かつ、いくつか前のやり直しであっても、すぐに開くことが出来るようにするプラグインです。

~/.vimrc
NeoBundle 'mbbill/undotree'

私は以下のように設定し、 <Leader>uで開けるようにしています。

~/.vimrc
" undotree.vim
" [?]でヘルプ。[¥],[u]でundo履歴
" http://vimblog.com/blog/2012/09/02/undotree-dot-vim-display-your-undo-history-in-a-graph/
" https://github.com/r1chelt/dotfiles/blob/master/.vimrc
nmap <Leader>u :UndotreeToggle<CR>
let g:undotree_SetFocusWhenToggle = 1
let g:undotree_SplitLocation = 'topleft'
let g:undotree_SplitWidth = 35
let g:undotree_diffAutoOpen = 1
let g:undotree_diffpanelHeight = 25
let g:undotree_RelativeTimestamp = 1
let g:undotree_TreeNodeShape = '*'
let g:undotree_HighlightChangedText = 1
let g:undotree_HighlightSyntax = "UnderLined"

easybuffer.vim

easybuffer.vimは、バッファ一覧を表示し、ショートカットですぐに開けるようにしてくれるプラグインです。その他、詳細情報も表示してくれるので、わかりやすいと思います。

~/.vimrc
NeoBundle 'troydm/easybuffer.vim'

:EasyBufferを実行します。

DirDo.vim

DirDo.vimは、argdoの拡張のようなものです。ここで、argdoとは、何かのコマンドを一括実行したいときに使います。例えば、以下のようにすると、フォルダ内にある.rbファイルの特定のキーワードhogeを特定のキーワードhogeに変換することができます。

:argadd *.rb

:argdo %s/hoge/hehe/g | update

しかし、フォルダを指定することはできません。そこで、DirDo.vimの出番です。

NeoBundle 'vim-scripts/DirDo.vim'

以下のようにすることで、フォルダを指定して、一括コマンドを実行出来ます。

:DDD app/controllers

:DDP *.rb

:DDO :%s/hoge/hoge/g | update

ここでは、app/controllersフォルダを指定しています。

switch.vim

switch.vimを使えば、特定の文字列をキーひとつで入れ替えることができます。例えば、truefalseを変換したりということができます。

~/.vimrc
NeoBundle 'AndrewRadev/switch.vim'

例えば、設定ファイルに以下を追記します。

~/.vimrc
" switch.vim
" http://www.vimninjas.com/2012/09/12/switch/
let g:variable_style_switch_definitions = [
\   {
\     'f': {
\       'foo': 'bar'
\     },
\
\     'b': {
\       'bar': 'foo'
\     },
\   }
\ ]
nnoremap + :call switch#Switch(g:variable_style_switch_definitions)<cr>
nnoremap - :Switch<cr>

すると、 fooの fの部分にカーソルが乗っている状態で +を押すと、 fooが barに切り替わります。そして、繰り返し +を押すと元に戻ります。これは、 barの bの位置にカーソルが乗っているからです。

上の例を見てもわかるように、このプラグインは、様々な使い方ができます。そして、 :Switchを使う場合は、例えば、 true などの上で - を押します。すると、文字列が false に変換されたと思います。

似たようなプラグインには以下のようなものがあります。

taku-o/vim-toggle

zef/vim-cycle

vim-easymotion

vim-easymotionを使うことで強調されたアルファベットを入力すると移動出来ます。

~/.vimrc
NeoBundle 'Lokaltog/vim-easymotion'

私は、以下の様な設定にしています。 ; + j,k,w,bなどの移動キーで発動します。続けて、強調されたアルファベットを入力すると移動出来ます。

~/.vimrc
" Lokaltog/vim-easymotion
" http://blog.remora.cx/2012/08/vim-easymotion.html
" ホームポジションに近いキーを使う
let g:EasyMotion_keys='hjklasdfgyuiopqwertnmzxcvbHJKLASDFGYUIOPQWERTNMZXCVB'
" 「;」 + 何かにマッピング
let g:EasyMotion_leader_key=";"
" 1 ストローク選択を優先する
let g:EasyMotion_grouping=1
" カラー設定変更
hi EasyMotionTarget ctermbg=none ctermfg=red
hi EasyMotionShade  ctermbg=none ctermfg=blue

clever-f.vim

clever-f.vimは検索移動を簡単にするためのプラグインです。fを押したあと、検索したい1文字を入力し、続いて fを押します。

~/.vimrc
NeoBundle 'rhysd/clever-f.vim'

vim-seek

vim-seekも同じく検索移動を簡単にするためのプラグインです。clever-f.vimとの違いは、2文字検索できる点です。

~/.vimrc
NeoBundle 'goldfeld/vim-seek'

使い方は簡単で、 sで検索を開始します。ここで検索したい2文字を入力します。 Sで前の行を検索します。

visualmark.vim

visualmark.vimは、マークした行へジャンプすることができるプラグインです。もちろん、Vimの基本機能としてできることですが、このプラグインを使うと、マークした行がハイライトされます。

wget --no-check-certificate https://raw.github.com/taku-o/downloads/master/visualmark.vim

mv visualmark.vim ~/.vim/plugin/

私は、以下の様なキーマップを設定しています。

~/.vimrc
" visualmark.vim
" http://nanasi.jp/articles/vim/visualmark_vim.html
map <unique> <F3> <Plug>Vm_toggle_sign
map <silent> <unique> mm <Plug>Vm_toggle_sign

これで、 F3を押すと、マークができます。そして、 F2を押すと、マークした場所に移動できます。

ちなみに、当該プラグインが使えない場合は、 vim --version | grep +signsを実行してみて、+signsとなっていない場合は、コンパイルが必要になります。

sudo port clean vim

sudo port install vim +signs

colorscheme

Vimは、背景色や文字色などをカラースキームで一括設定出来ます。おすすめのカラースキームは、以下のようになっています。

~/.vimrc
NeoBundle 'tomasr/molokai'
NeoBundle 'nanotech/jellybeans.vim'
NeoBundle 'altercation/solarized'
NeoBundle 'vim-scripts/newspaper.vim'

設定ファイルに以下を追記します。

" カラースキームを指定する
colorscheme molokai

" あらかじめ用意されたカラースキームを使用する
" colorscheme evening

" 背景色の傾向
set background=dark

" ハイライト on
syntax enable

unite-colorschemeを使うことで、簡単にカラースキームを切り替えることができます。

~/.vimrc
NeoBundle 'ujihisa/unite-colorscheme'

設定ファイルに以下を追記することで、 \+ucでカラースキームを簡単に選べるようになります。

~/.vimrc
" カラースキームの切り替えを簡単にする
" http://inputxoutput.com/vim-advent-calendar-2012/
nnoremap <Leader>uc :<C-u>Unite colorscheme -auto-preview<CR>

ここで、カラースキームを変更することで、neocomplcache'の補完が読み取りにくくなる場合があります。この場合、以下の様な設定を行うと、分かりやすくなります。

~/.vimrc
" 補完候補の色づけ for vim7
" https://github.com/yuroyoro/dotfiles/blob/master/.vimrc.colors
hi Pmenu ctermbg=255 ctermfg=0 guifg=#000000 guibg=#999999
hi PmenuSel ctermbg=blue ctermfg=black
hi PmenuSbar ctermbg=0 ctermfg=9
hi PmenuSbar ctermbg=255 ctermfg=0 guifg=#000000 guibg=#FFFFFF

surround.vim

surround.vimでは、囲んでいる括弧を削除したり、文字列をかっこで囲むことができます。詳しくは、こちらの記事を参考にしてください。

NeoBundle 'tpope/vim-surround.git'

ちなみに、Vimの標準機能では、以下の様な編集が可能です。

HTML タグがあったとします。
この場合、通常の機能では、 
dat
でタグ全体を消したり、 
dit
でタグで囲まれた部分を消したりすることができます。
ちなみに、先頭の「d」はデリートですので、「y」とするとヤンク、「c」とするとチェンジすることもできます。

私のVimのF1~F6までのキーマップ

~/.vimrc
" F1でヘルプ

" F2でvisualmark.vimのマーク移動

" F3でvisualmark.vimのマーク設定
map <unique> <F3> <Plug>Vm_toggle_sign
map <silent> <unique> mm <Plug>Vm_toggle_sign

" F4で前のバッファ
map <F4> <ESC>:bp<CR>

" F5で次のバッファ
map <F5> <ESC>:bn<CR>

" F6でバッファを削除する
map <F6> <ESC>:bnext \| bdelete #<CR>
command! Bw :bnext \| bdelete #

Vimで番号を順番につける方法

以下の設定ファイルを書き、 数字を選択したあと、 ?coとします。ちなみに、?には数字が入ります。

~/.vimrc
" 数字を選択し、[?],[co]で数字順に変換する
" https://sites.google.com/site/fudist/Home/vim-nihongo-ban/tips
nnoremap <silent> co :ContinuousNumber <C-a><CR>
vnoremap <silent> co :ContinuousNumber <C-a><CR>
command! -count -nargs=1 ContinuousNumber let c = col('.')|for n in range(1, <count>?<count>-line('.'):1)|exec 'normal! j' . n . <q-args>|call cursor('.', c)|endfor

また、先頭が0でも10進数として扱うには、設定ファイルに以下を書きます。

~/.vimrc
" 先頭が0でも10進数として扱う
" http://www15.ocn.ne.jp/~tusr/vim/vim_text2.html
set nrformats-=octal

SublimeText2

Theme Phoenix

Sublime Text2(以下、st2)のテーマには、Phoenixというものがあります。私は、このテーマを愛用しています。

パッケージコントロールのインストールから theme phoenixとでも検索し、当該テーマをインストールしたあと、以下を設定ファイルに書き込みます。

{
    "theme": "Phoenix Dark.sublime-theme"
}

Brewser Refresh

Sublime Text2 で Markdown Preview する時などは、Brewser Refresh が便利です。ブラウザのリロードがキーで行えます。

インストーラーの検索で brewser refreshを検索して、インストールします。いちいち Cmd+Shift+pを押して、 installと入力し、 Enterで検索をかけるのが面倒な方は、以下を設定しておきます。

[
{ "keys": ["super+alt+p"], "command": "show_overlay", "args": { "overlay": "command_palette", "text": "install"}}
]

この設定で、Cmd+Alt+pinstallを入力した状態でインストーラーが開きます。

そして、設定ファイルに以下を記述します。

[
    {
        "keys": ["command+shift+r"], "command": "browser_refresh", "args": {
            "auto_save": true,
            "delay": 0.5,
            "activate_browser": true,
            "browser_name" : "Google Chrome"
        }
    }
]

これで、 Cmd+Shift+rを押せば、ブラウザを更新出来ます。

59
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
62