Hatena::ブログ(Diary)

Fedora 19(はてな) このページをアンテナに追加 RSSフィード


Search in WWW Search in hatena/fedora9/

2008-12-05

vim カスタマイズ

画像

vim-users.jp(vim Hack)

leafpad .vimrc

" plugin .vim/plugin
" NERD_commenter.vim http://d.hatena.ne.jp/tanakaBox/20070409/1176062438
" FuzzyFinder http://www.vim.org/scripts/script.php?script_id=1984
nnoremap sf :new<Cr>:FuzzyFinderFile<Cr>

" http://hatena.g.hatena.ne.jp/hatenatech/20060515/1147682761
set nocompatible  " Use Vim defaults instead of 100% vi compatibility
set backspace=indent,eol,start  " more powerful backspacing
set nobackup    " Don't keep a backup file
"set number      " 行番号を表示 :se nu  非表示 :se nonu  :h number
set incsearch   " 検索文字を打ち込むと即検索する(インクリメンタルサーチ)
set wildmenu    " :e .v<TAB><TAB> した時に補完候補を上に表示 
"set list      " 改行に$を表示 :se list :se nolist
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
set ignorecase " 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set autoindent
set cindent
set smarttab
set laststatus=2
"set statusline=%n\:\ %f\ %m\ %r%{&foldenable!=0?'[fen]':''}%=%l/%L\ (%p%%)\ %{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}
" http://github.com/januswel/dotfiles/blob/68b7980885979acffd2be82a106032e6d2f9c5f4/.vimrc
set statusline=%t\ %y%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%r%m%=%c:%l/%L[%3p%%]

"set cursorline   " :se cul  :se nocul  :h cursorli
set hidden " バッファが編集中でもその他のファイルを開けるように
set fileencoding=utf-8
set encoding=utf-8
set showmatch " 対応するカッコを強調表示

syntax on " /etc/vimrc(fedora)
colorscheme darkblue " darkblue はデフォルトでインストール済み
"colorscheme desert

" keymap
" http://hatena.g.hatena.ne.jp/hatenatech/20060515/1147682761
" ノーマル、ビジュアル、挿入時、コマンド入力時(:wq)にShift + l(Ctrl + l)で抜ける
" L が入力できないので l を入力して~で大文字に変換
" 本来Lは画面の一番下にカーソル移動 一番上はH
imap <C-l> <esc>
imap <C-g> <esc>
map <C-l> <esc>
map <C-g> <esc>
"make Shift+l(Ctrl + l) an additional ESC
"noremap L <ESC>
"noremap <C-l> <ESC>
"noremap <C-g> <ESC>
"cnoremap L <C-C>
"cnoremap <C-l> <C-C>
"cnoremap <C-g> <C-C>
" :w など入力時にShift + l でキャンセル
cmap <C-l> <C-C>
cmap <C-g> <C-C>
"inoremap L <ESC>
"inoremap <C-l> <ESC>
"inoremap <C-g> <ESC>
" http://github.com/guyon/configs/tree/master/.vimrc
" .vimrcの再読み込み
"nnoremap ,vr :source $HOME/.vimrc<CR>
nnoremap ,vr :source %<CR>
" Ctrl + z でジャンプする前の位置に移動(gg,Shift + g,10 Shift + g)
map <C-z> <C-o>
" Ctrl + k で行末までカット
map <C-k> D
" Space で半画面スクロール Ctrl + u で上へ半画面スクロール
"map <Space> <C-d>
" Ctrl + a で行頭 本来Ctrl + a は値の増加
map <C-a> 0
" すべて選択 ggVG
" すべてコピー ggyG
" 行末までコピー y Ctrl + e
" Ctrl + e で行末 本来Ctrl + e は1行下にスクロール 上はCtrl + y
map <C-e> $
" Shift + c 行末までカットして挿入モード
" command mode 時 tcsh風のキーバインドに
cmap <C-A> <Home>
cmap <C-E> <End>
cmap <C-F> <Right>
cmap <C-B> <Left>
cmap <C-D> <Delete>
" Ctrl + c で ESC(コマンド入力時(:wqとか))
" ee で上書き保存 eで文字の末尾に移動が遅くなる
"nnoremap ee :w<CR>
" qq で上書き保存して終了 Shift + zz
nnoremap qq :wq<CR>
" :ls でbuffer一覧表示
" :e .emacs で新しくbufferに開く
"buffer operation
nnoremap sn :bn<CR>
nnoremap <C-T> :bn<CR>
nnoremap sp :bp<CR>
"window operation
" ssで分割 scで閉じる so
noremap ss <C-W>s
noremap sc <C-W>c
noremap so <C-W>o
"move
"tt で別のウィンドウへ移動 sjで下 siで上
noremap tt <C-W><C-W>
noremap sj <C-W>j
noremap si <C-W>k
"resize +広げる -狭める
noremap + <C-W>+
noremap - <C-W>-
" zEnter で最大化
noremap z<CR> <C-W>_
" z0 で最小化
noremap z0 1<C-W>_
" z. で均等に
noremap z. <C-W>=
" 表示行単位で行移動する 長い行で自動折り返した時用
nnoremap j gj
nnoremap k gk
" b でブレース 対応する括弧(){}にジャンプ
nmap b %
" http://d.hatena.ne.jp/guyon/20081230/1230648901
" http://github.com/guyon/configs/tree/master/.vimrc
" 検索時に画面中央にくるようにする
" nzzを割り当てるとfold時の検索でnを押して次に進んだ場合に自動展開されない
nnoremap n nzzzv
nnoremap N Nzzzv
nnoremap * *zzzv
nnoremap # #zzzv
nnoremap g* g*zzzv
nnoremap g# g#zzzv

" 全角スペースを視覚化
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=white
match ZenkakuSpace / / 
" http://d.hatena.ne.jp/magicalhat/20081223/1230013283
if has("autocmd")
  filetype plugin indent on
  autocmd FileType perl,cgi :compiler perl  "コンパイラの指定

  " テンプレ http://d.hatena.ne.jp/higeorange/20071003/1191356790
  "autocmd BufNewFile *.html 0r ~/.vim/templates/skel.html 

  " filetypeをセット http://d.hatena.ne.jp/rdera/20090110/1231565387
  " autocmd BufNewFile,BufReadPost ~/.zfunc/* :set ft=zsh

  " カーソルの位置を復元 Ubuntu 8.10
  " http://d.hatena.ne.jp/chonmagejiro/20080815/1218780398
  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal g`\"" |
    \ endif
endif

" 文字コードの自動認識
" http://www.kawaz.jp/pukiwiki/?vim#cb691f26
if &encoding !=# 'utf-8'
  set encoding=japan
  set fileencoding=japan
endif
if has('iconv')
  let s:enc_euc = 'euc-jp'
  let s:enc_jis = 'iso-2022-jp'
  " iconvがeucJP-msに対応しているかをチェック
  if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'eucjp-ms'
    let s:enc_jis = 'iso-2022-jp-3'
  " iconvがJISX0213に対応しているかをチェック
  elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'euc-jisx0213'
    let s:enc_jis = 'iso-2022-jp-3'
  endif
  " fileencodingsを構築
  if &encoding ==# 'utf-8'
    let s:fileencodings_default = &fileencodings
    let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
    let &fileencodings = &fileencodings .','. s:fileencodings_default
    unlet s:fileencodings_default
  else
    let &fileencodings = &fileencodings .','. s:enc_jis
    set fileencodings+=utf-8,ucs-2le,ucs-2
    if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
      set fileencodings+=cp932
      set fileencodings-=euc-jp
      set fileencodings-=euc-jisx0213
      set fileencodings-=eucjp-ms
      let &encoding = s:enc_euc
      let &fileencoding = s:enc_euc
    else
      let &fileencodings = &fileencodings .','. s:enc_euc
    endif
  endif
  " 定数を処分
  unlet s:enc_euc
  unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
  function! AU_ReCheck_FENC()
    if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
      let &fileencoding=&encoding
    endif
  endfunction
  autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
  set ambiwidth=double
endif

" メモ memo
" :help a または :h a。分割ウィンドウで表示。scで閉じる。z.で同じサイズに
" :h ctrl-z。:h insert-index。
" 
" アンドゥ u
" 行の切り取り dd
" 行のコピー yy
" 4文字コピー y4
" 行末までカット Ctrl + k 
" 画面の一番上に移動  Shift + h  中央 Shift + m  一番下  Shift + l
" ペースト p
" 上書き保存 :w
" ESC = Ctrl + l
" 下スクロール Ctrl + f
" 上スクロール Ctrl + b
" ウィンドウ分割 ss
" ウィンドウを閉じる sc
" http://d.hatena.ne.jp/shakaku/20090124
" vlllとかで選択して "+y でコピーします(Firefoxとかに貼り付け可能)
" .vimrc を編集保存して、:source % するかvimを再起動すると反映します。
" アドレスを右クリックしてFirefoxで開ける
" Shift + k  関数の説明?
" :x (または :wq) 保存して終了
" :w で上書き保存
" $ vimtutor
" d0 行頭までをカット
" カーソルの位置は自動保存
" 10 Shift + g で 10行めにジャンプ
" 10 j 10行下にジャンプ。Ctrl + zで戻る
" Ctrl + z  ジャンプする前の位置に戻る
" http://www.thinkit.co.jp/article/123/3/
" :new または Ctrl + w n 新しいウィンドウを開く
" z<Enter>  分割中のアクティブなウィンドウを最大化
" z0 分割中のアクティブなウィンドウを最小化
" z. 分割ウィンドウを同じ大きさに変更
" z10<Enter>  分割中アクティブなウィンドウを10行表示
" z- カーソル行を一番下になるようスクロール
" zt カーソル行を画面の最初に。zz 中央に。zb 最後に。
" v でビジュアルモード、再度vで抜ける(Shift + v、Ctrl + vも同様)
" gd カーソルのある位置の文字で検索(* と同じ)
" ga アスキーコードを表示
" Ctrl + m  次の行の行頭に移動
" gi 最後に追加した後の位置に追加
" e 文字の末尾に移動(wと同じ?)。ge 前の文字の末尾に移動
" 文字コード指定して開き直す
":e ++enc=euc-jp
":e ++enc=sjis
":e ++enc=iso-2022-jp
" :lcd Desktop  分割したウィンドウだけcd
" 単語の補完 Ctrl + p。Ctrl + n で後方。Ctrl + l で決定。
" /hello 後方検索。?hello 前方検索。n で次を検索。Shift + n で前。
" /hello して Ctrl + h でBackspace
" o でカーソルの下に新しい行を追加。Shift + o でカーソルのある行に追加
" Shift + r  上書き変更
" ファイルの一番上へ gg。  一番下へ Shift + g。10行めへ 10 Shift + g。
" Shift + a 行末に追加
" :noh または :nohlsearch 検索のハイライトを消す
" Ctrl + z で一時停止  コマンドが入力でき、$ fg で元に戻す
" 関数の折りたたみ zf   展開 Space
" mark(tag)一覧表示 :marks
" markをつける ma(aは任意)  markにジャンプ 'a(aは任意) 終了後も保存
" '' 直前の行(マーク)に戻る。ジャンプする前に戻ったり。
" 大文字小文字の変換 ~
" Shift + x 前の文字を削除(Backspaceと同じ)、x カーソルのある文字を削除
" 複数行まとめてコメント化 行頭でCtrl + v jjjj Shift + i # Esc
" pathやファイル名などを表示 2 Ctrl + g
" バッファのリストを表示 :ls
" sn 次のバッファ  sp 前のバッファ
" ファイルをバッファに開く :e .vimrc
" 次のendの前まで削除 d/end<return>
" :set nonu で行番号を非表示、 :set nu で表示
" vllで範囲選択してyでコピー、pでカーソルの右にペースト Shift + p で左にペースト
" vllで範囲選択してdでカット、pでカーソルの右にペースト Shift + p で左にペースト
" vllで選択中oで選択範囲の四隅へ移動
" 行の特定の文字の手前まで削除 例  ) の手前まで削除するには、ct)
" 半画面下にスクロール 上Ctrl + d  上Ctrl + u 
" 保存して終了 Shift + zz
" アンドゥ u。行をまとめてアンドゥ Shift + u。
" アンドゥのやり直し Ctrl + r
" 10行めへジャンプ 10 Shift + g
" 選択スタート v(visual)
" 行選択スタート  Shift + v
" 矩形選択スタート Ctrl + v
" 1行上にスクロール Ctrl + y  下 Ctrl + e
" 1画面上にスクロール Ctrl + b  下 Ctrl + f
" sn  次のバッファを表示  sp 前のバッファを表示  
" 文字を削除して挿入モード s  行を削除して挿入モード Shift + s
" 行を切り取り挿入モード cc または Shift + s
" 文字をカーソルの右に追加 a  行末に追加 Shift + a
" 文字をカーソルの左に挿入 i  行頭に挿入 Shift + i
" 同じ行の任意の文字にジャンプ fa(aは任意) ta で文字の手前にジャンプ
" 同じ行の任意の文字にジャンプ fa;(;で繰り返し) fa;,(,で逆方向に繰り返し)
" p viのyやddでコピー・カットしたものを貼り付け
" 行を複製 yyp
" xp 2文字の入れ替え(EmacsではCtrl + t)
" 下に空白行を挿入して挿入モード o
" クリップボードの内容貼り付け :a して Ctrl + Shift + v して Ctrl + c
" 行連結 Shift + j (自動的に半角スペースで区切る)
" * カーソルのある位置の単語で検索。逆方向に検索は#。
" cw 単語を切り取って挿入モード
" dw 単語をカット
" macro記録開始 qa(aは任意) 記録終了 q 実行 @a
" 行末までをカットして挿入モードへ Shift + c
" コントロールコードの入力 Ctrl + Shift + v (例えば :set をコピーした状態で)
" indent追加  >>、  indent解除  <<。 複数行選択しても可能
" Shift + v で行を選択して、> でindent追加。 >.. で連続
" Shift + q  Exモード
" 保存 :w。保存して終了 :wq。保存せず終了 :q!。

ESCは遠いので、ESCの代わりにCtrl + l(Shift + l)

5月8日の技術勉強会 - はてな技術発表会日記 - 機能変更、お知らせなど


,, で <esc> とか、,h1 で タグ を入力して間で入力モードとか。

処理系コレクション:Linux:~/.vimrc


vim注目エントリー


vim でカーソルの位置を復元する方法 - ちょんまげじろうの日記


ずれないようにペーストするには、(vim7では:a!)

:a! して、Ctrl + Shift + v して、Ctrl + c

ペースト時 の vim のオートインデントを無効にしたい - Web道楽

はてな vim 勉強会勝手にリファクタリング


colorize.vim 入力モード時は背景色を変更 — 名無しのvim使い


hello.cとかで入力中{の後Enterで自動インデント、}も対応)(filetype plugin indent on)

せっかくなので、昔流行っていたらしい vimrc 晒しをやってみる - ふしぎなぼうし


ずんWiki - vim 文字コードの自動判別


,ccコメントアウト(複数行選択時も可)(hello.cとかファイルタイプで自動判別)(,c<SPACE> でコメントアウトON/OFF)Plugin

NERD_commenter.vim を .vim/plugin に入れます。

VimのヤバすぎコメントプラグインNERD_comments.vim - ボクノス

jpease’s vimrc at master — GitHub

Vimを使ったRuby On Rails開発環境の構築 - ナレッジエース


FuzzyFinder (プラグイン)

fuzzyfinder.vim を .vim/plugin に入れてvim再起動します。

.vimrc に

nnoremap sf :FuzzyFinderFile<Cr>

を追加しておくと、sfで起動してファイル名の一部を入力してCtrl+nとかで選択できます。

(または:FuzzyFinderFile で起動します。(:Fuzz[tab] とかで補完できます))

rubyneko - fuzzyfinderの簡単な使い方

fuzzyfinder.vim - vimグループ


補完候補を自動的にポップアップ表示するプラグイン autocomplpop.vim

autocomplpop.vim を .vim/plugin に入れてvim再起動します。

vim autocomplpop.vimで補完候補を自動的にポップアップする方法

候補が表示された時にEnterで補完されます

Ctrl + n や Ctrl + p で候補切り替え

文字の途中で改行したい時はCtrl + n で切り替えてEnter


Ctrl + v で矩形範囲選択モードにして、コメントの#だけを複数行矩形選択してd で削除とか、複数行に#を追加とか(複数行の1文字目を矩形選択してShift + i # ESC)。

5月2日の技術勉強会 - はてな技術発表会日記 - 機能変更、お知らせなど


入力中Ctrl+nやCtrl+pで同じファイル内の単語で補完

viの使い手がvimエディタについて知っておくべき事 トップ10 — 名無しのvim使い


:make

vim × Perl のコンパイルを簡単にするコマンドと設定 (Perl.vim) - iDeaList::Writing


Digital Junk::プログラマが知っておくべき100のVimコマンド


grep(未確認)

ack.vim - vim から ack の検索結果を使う - 川o・-・)<2nd life


Best Vim Tips - Vim Tips Wiki - a Wikia wiki


Vimの全オプション


.vimrc をバックアップしておく - TrashSUITE


/dotfiles/vim – CodeRepos::Share – Trac


UNIX今日の技 - FrontPage R


Web屋のためのVim設定・Tipsまとめ 1/2 - ナレッジエース


編集中のファイルをブラウザで開く - new Error(”exeception throw”)


処理系コレクション:Linux:vi操作方法


基本 (vimエディタ) サイト更新停滞ちうっ 名無しのVIM使い


"+y でクリップボードにコピー。(Firefoxとかに貼り付け可能) (Fedora10は-xterm_clipboard)

2009-01-24 - shakakuの日記


ハタさんのブログ : vimのgrep(vimgrep)が素晴らしすぎて泣いた。


Vimで編集中のプログラムをキー一発で実行するTips - 医者を志す妻を応援する夫の日記


vim入門 (vim study #1)


hakobe / .vimrc

僕がサクラエディタからVimに乗り換えるまで

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/fedora9/20081205/1228495513