vim の設定

MikuHatsune2016-08-30

というよりPC 環境全般の話。
スクリプトを書いている。
しかし、マウスGUI ユーザーなので残念ながら腱鞘炎になってしまった。
通常のマウスをやめてトラックボールにしたが、母指IP 関節が半端無く痛い。
というわけで利き手とは逆の手にマウスもおいている。
 
腱鞘炎の治療の基本は安静である。というわけで動かす機会を減らすことが重要である。
マウスを使う機会を減らすには、ショートカットキーを駆使したCUI 操作が重要である。
ubuntu 環境ではgedit もしくはtextadept を使い、ターミナル上に起動しているR にAlt + tab で切り替えてコピペ
もしくはRstudio のエディタとRstudio 上のR コンソールをCtrl + 1 or 2 で行ったり来たりして使っていた。
これでマウスを使う機会がそれなりに減ったため、腱鞘炎も緩和されてきたが、やはりマウスでクリックして画面変更やコピペ、エディタ内の任意の場所へのクリックがあるため、オレの腱鞘は徐々に蝕まれていた()
 
というわけでマウス完全離脱を目指してvim にする。
vimemacs の永遠の宗教論争があるが、vim にした理由は単純にubuntu で使いやすそうだったから。
とはいってもubuntu デフォのvim だと機能がアレェ…だったのでググって適当に改変。

http://qiita.com/merrill/items/9c800030333ab4c9408f
脱初心者を目指すなら知っておきたい便利なVimコマンド25選 (Vimmerレベル診断付き) - Qiita
Vimの使い方 よく使うコマンドまとめ | Memo on the Web
Vim 設定ガイド - Qiita
何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜 - Qiita
Vim の種類 (Vim family) - Qiita
http://www.dotapon.sakura.ne.jp/blog/?p=323
Nvim-R - Plugin to work with R : vim online
vim-r-pluginの導入方法 – 日々の記録簿
Vimでの日本語編集がはかどるキーマッピング - Qiita
UbuntuでCapslockをEscキーに割り当て - adragoonaの日記
Vimのスペルチェック機能を使う - Qiita
Vimのスペルチェック有効時に日本語がスペルエラーとして表示されるのを防ぐ - Qiita
vimのcolorscheme - 備忘録 beta
vimでキーマッピングする際に考えたほうがいいこと - derisの日記
VimでSpaceを使った便利なキーバインド用vimrc設定 | EasyRamble
Vim のカスタマイズ 〜キー割り当て変更方法〜 - Vim のブログ
LinuxのIME制御: fcitxとVimとEmacs with evil-mode - yoshitia’s diary
Vim のスペルチェッカ早わかり - Alone Like a Rhinoceros Horn
vimrcの設定方法をカテゴリ毎にまとめてみた - Qiita
 
プラグインはneobundle がうまくいかないのでvim-plug を使っている。
コマンドモードで

:PlugInstall

とやればなんやかんや勝手にインストールされる。
おい、NeoBundle もいいけど vim-plug 使えよ - Qiita
http://blog.nest-online.jp/16976
素のVimだと限界がある!絶対にインストールしておきたいVimプラグイン25個
Vim pluginへの入門[NeoBundle.vim] - Qiita
 
はまった点として
デフォルトでv7.4 が入っていて、Huge 版なのに -clipboard のためクリップボード経由でなかなかコピペができなかった。GUI 版のvim-gnome もインストールしたら勝手に +clipboard になった。
タブや改行コードを視覚的に見せてくれる秀丸っぽいやつは、^ や ~ の半角文字にしたいが、いいのがないので↲ や¬ にしたら下のは文字化けしているので適宜変える。vim 上で文字コードが合えばちゃんとなっている。
/usr/share/vim/vimrc がそれなので、上のリンクからよさそうなのを適当にパクってこれをコピペ。
可視化のところはこんな感じ。
set listchars=tab:^\ ,trail:-,eol:¬,nbsp:%

runtime! debian.vim
if has("syntax")
   syntax on
endif

set number
set title
set fenc=utf-8
set showcmd
set cursorline
set ambiwidth=double
set tabstop=2
set expandtab
set shiftwidth=2
set smartindent
set showmatch
set list
set laststatus=2
nnoremap j gj
nnoremap k gk
" change key mapping with pushing <Space>
noremap <Space>h ^
noremap <Space>l $
noremap <Space>m %
noremap <Space>v 0v$h
noremap <Space>d 0v$hx
noremap <Space>y 0v$hy
set listchars=tab:^\ ,trail:-,eol:&#172;,nbsp:%
set nrformats-=octal
set hidden
set history=50
set virtualedit=block
set whichwrap=b,s,[,],<,>
set backspace=indent,eol,start
set wildmenu
set ignorecase
set smartcase
set incsearch
set wrapscan
set hlsearch
set clipboard=unnamedplus,autoselect
" 入力モードでのカーソル移動
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-h> <Left>
inoremap <C-l> <Right>

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

 
デフォルトはこれ

 
設定したものがこれ。かっこのハイライトとか消えてるけどあとで直した。

 
ターミナル上ではAlt + 番号 で現在アクティブな画面間を移動できるので、1番目にR, 2番目にvim というように起動しておけばマウス(゚?゚)イラネ
ただし、プロット画面を出した時にそれを移動したいということになればマウスは少し必要、これもR からCUI 操作できるのか?