vim
こんにちは。<del>hjklを使わない</del>hjklがようやく使えるようになった貧弱vim使いです。
目次
基礎
mode
モードがあるのですよ。
i:INSERTモードにする移動関連
Ctrl+B:PageUp(1ページ)Tips
ほぼ俺様メモ
カーソルキーを封印する
ずっとやろうと思いつづけて放置してたんだけど、重い腰をあげてチャレンジしたらできた。 Text-Terminal-HOWTO:端末の使用にて
vi はインサートモードから抜けるためのコマンドとしてエスケープキーを使います。 矢印キー (カーソルキー) を押せば、エスケープシーケンス (ESC で初まる文字列) がホストに送られます。 vi は ESC の 2 つの意味を区別しなければいけません。 利口な vi (このために設定された vim などの) は ESC と次のキーの時間間隔によって見分けることができます。 もし間隔が短かければカーソルキーが押されたと判断します。 さらに詳しいことを知りたければ、 vim で ``help cursor-keys'' を使ってください。
と書かれているので、ようするに時間間隔を限界まで短くしてさらに矢印キーのコードをmapで消してやればなんとかなるー!?というわけでこうした。
<code> "map disable cursor key set ttimeout set timeout set ttimeoutlen=0 set timeoutlen=0 map <ESC>OA <ESC> map <ESC>OB <ESC> map <ESC>OC <ESC> map <ESC>OD <ESC> imap <ESC>OA <ESC> imap <ESC>OB <ESC> imap <ESC>OC <ESC> imap <ESC>OD <ESC> </code>
できたーーーー!!!!もしかしたら不完全かもしれないけれど、矢印キーを使わないようにする特訓の為程度なら別にこれでも満足!
ESCキーを使わない
ESCはCtrl+[で代用できる。Ctrl+[の方が指が遠くへいかないのでこっち使ったほうが良い(気がする。
括弧の対応を調べる
括弧の上で%を押すと対応する括弧にとべる。
1文字の置き換え
http://www.kaoriya.net/vimdoc_j/usr_04.txtより <blockquote> "r"コマンドはオペレータではありません。1文字の入力を待ち、カーソル位置の文 字を入力された文字に置き換えます。同じことは"cl"とか"s"でもできますが、"r" の場合は最後に<Esc>を押す必要はありません。
there is somerhing grong here ~
rT rt rw
There is something wrong here ~
"r"にカウンタを使うとその数分の文字を指定の文字に置き換えます。
There is something wrong here ~
5rx
There is something xxxxx here ~
文字を改行に置き換えたければ、"r<Enter>"を使います。1文字を削除した上で、 改行を挿入します。ただし、改行に対してはカウンタは無効で、削除する文字にのみ 有効となります。"4r<Enter>"は4文字削除し、1つの改行を挿入します。 </blockquote>
タブを使わない。
タブでなくスペースを使う場合。
set expandtab
既存のものは
:%retab 4
でなんとかできるらしい
文字コードの変更と改行コードの変更
vimエディタで「文字コード、改行コードを変更して保存する。」より <blockquote> 文字コードの変更 set fileencoding=文字コード set fenc=文字コード (上のコマンドの短い形式。こちらでも良い。) set fileencoding=euc-jp (エンコーディングEUC-JPに変更。) set fileencoding=shift_jis (エンコーディングSHIFT_JISに変更。) set fileencoding=utf-8 (エンコーディングUTF-8に変更。)
ファイルフォーマットの種類の変更 set fileformat=ファイルフォーマットの種類 set ff=ファイルフォーマットの種類 (上のコマンドの短い形式。こちらでも良い。) set fileformat=dos (改行をWindowsの形式に変更。) set fileformat=mac (改行をMacの形式に変更。) set fileformat=unix (改行をUnixの形式に変更。)
を実行します。 </blockquote>
文字コードの自動認識
ずんWikiのコンテンツを参照。
画面の分割
横に分割する場合:vsp filename置換
コマンドモードで
%s/hoge/huga
とかやると一括置換とかできる。
ひとつだけ置換する場合は
s/hoge/huga/g
指定行(この場合1行目から10行目)に対して適用する場合
1.10s/hoge/huga/g
vim正規表現を参照
phpの関数をC-n C-pで補完する
<blockquote> dictionaryで指定した辞書ファイルはC-xC-kで補完してくれるけど、これ打つのがめんどくさくてつかってなかった。でも completeでkオプションを指定すると、C-n C-pでも補完が出来るようになるってことを知った。けっこーphpの関数は長いのが多いんでいつものC-n C-pで補完が出来ると楽ー。以下覚え書きメモ。
まずはphpの関数一覧の辞書ファイルを作る
$ mkdir -p ~/.vim/dict/
$ php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > ~/.vim/dict/php_functions.dict
で、.vimrcに
" phpの関数補間
autocmd FileType php :set dictionary+=~/.vim/dict/php_functions.dict
" 辞書ファイルからの単語補完
:set complete+=k
とか。 </blockquote>
suspendとresume
vimで作業してる時に、シェルでなんかしたいなー。って時は
:suspend
ってやってシェルに戻って、作業が済んでまたvimりたいなーって 思った時にシェルから
fg
と入力するとvimが出てくる((fgはフォアグラウンドの略か?))
Option
highlight
Highlighting groups for various occasions
SpecialKey>-----SpecialKey
NonText>--------NonText
Directory>------Directory
ErrorMsg>-------ErrorMsg
IncSearch>------IncSearch
Search>---------Search
MoreMsg>--------MoreMsg
ModeMsg>--------ModeMsg
LineNr>---------LineNr
Question>-------Question
StatusLine>-----StatusLine
StatusLineNC>---StatusLineNC
VertSplit>------VertSplit
Title>----------Title
Visual>---------Visual
VisualNOS>------VisualNOS
WarningMsg>-----WarningMsg tclLineContinue
WildMenu>-------WildMenu
Folded>---------Folded vimFold
FoldColumn>-----FoldColumn
DiffAdd>--------DiffAdd
DiffChange>-----DiffChange
DiffDelete>-----DiffDelete
DiffText>-------DiffText
SignColumn>-----SignColumn
memo
上級者への道
/ ? * #を使い込なす。
--pythoninterp
くそー!結構無駄に時間くってしまった! ubuntuの場合
aptitude install python-dev
しておかないとだめ。その上で
--python-config-dir
を
--puthon-config-dir=/usr/local/python2.4/config
にする。なんだ。rubyinterpもruby-devがないから入ってないのか。気がつかなかった。
はてなブックマーク - キーワード「vim」を含む新着エントリー
- Big Sky :: VimでFizzBuzz...いやBrainfuck
- Rhinoで自作スクリプトを動かす - 今日覚えたこと
- 227808
- vimエディタから、いろいろなパターンの方法でファイルを開く — 名無しのvim使い
- tmux – A Powerful, Intuitive Alternative to screen @ JWC.blog
- 'langmap' - VimWiki
- rails.vimとvim関係 | ソースコード備忘録Press
- » tokyotyrant を試す: nPress
- TTYShare - share and view your tty data online.
- Ubuntu8.10で「 警告:この文字は、エンコーディング UTF8 にマップできません。」 - LNCT MEMO 〜Webを感じる(仮)〜
- 今現在自分が利用しているプラグイン - EAGLE 雑記
- wxPythonを使ったTwitterのGUIクライアント - yattの日記
- バッファを表示させてみる - hijouguchiの日記
- VIMでマッチしているHTMLタグやrubyの対応するdo endにカーソルを移動させる。: aticoにようこそ
- Gaucheでプログラミング − @IT
- surround.vim のつかいかた
- 第二回 Sugamo.vim : ATND
- 初めて本格的にJavaを使ってみていいと思ったところ - sugmak's log
- savevers.vim - Automatically save and diff multiple, sequentially numbered revisions (like VMS) : vim online
- Togetter - まとめ「vimのエディットモード(挿入モード)で1文字削除する方法など」
vim病
Notepadなどのほかのエディタでも手が勝手にvimキーバインドを叩いてしまう病気。一度発症するとイライラしてまともに作業できなくなってしまう。
関連リンク
- Vimperator
- Vimperator/plugin
- Vimperator/plugin/autoIgnoreKey.js
- Vimperator/plugin/caretBrowse.js
- Vimperator/plugin/commandBookmarklet.js
- Vimperator/plugin/copy.js
- Vimperator/plugin/direct_bookmark.js
- Vimperator/plugin/eijiro.js
- Vimperator/plugin/encodingSwitcher.js
- Vimperator/plugin/feedSomeKeys.js
- Vimperator/plugin/gvimail.js
- Vimperator/plugin/ldrize_cooperation.js
- Vimperator/plugin/lookupDictionary.js
- Vimperator/plugin/proxy.js
- Vimperator/plugin/stylechanger.js
- Vimperator/plugin/toggleHighlight.js
- Vimperator/plugin/toggleToolbar.js
- Vimperator/plugin/walk-input.js
- Vimperator/vimperatorrc
- vim
- vim/plugin
- vim/plugin/snippetsEmu
- vim/plugin/surround
- vim/regex
- vim/script
- vim/vim7
