ラベル vim の投稿を表示しています。 すべての投稿を表示
ラベル vim の投稿を表示しています。 すべての投稿を表示

2009年5月15日金曜日

vimをviper-modeに近づける

本当に emacs 生活が長かったので、
いつのまにか手癖が完全に viper-mode に最適化されていた。

おかげで vim を触るとイライラするように。。。

これまでとは逆のアプローチで vim を viper-mode に近づける
設定をメモしておく。

~/.vimrcに以下を追記
===
nnoremap g<C-x> <C-x>
nnoremap <C-x>o <C-w><C-w>
nnoremap <C-x>b :b #
nnoremap <C-x><C-f> :e
nnoremap <C-x>1 <C-w>o
nnoremap <C-x>2 :sp<cr>
nnoremap <C-x>3 :vs<cr>
nnoremap <C-x>0 :q<cr>
nnoremap <C-x>k :q
nnoremap <C-g> <esc>
cnoremap <C-g> <C-c>
===

2009年5月6日水曜日

vimの小技

開発環境が linux で emacs が便利だったことから
vim から少し離れていた。

そうなると当然、小技を忘れてくる。
久々に触ってみて忘れ具合に少し焦ってきたので、
今のうちに最も忘れそうで、
最も使いそうな(?)忘れるには惜しい小技をまとめておく。

1. ファイル内の tab をスペースに

:set expandtab
:retab

※逆バージョン(space -> tab)

:set noexpandtab
:retab!

2. 文字コードを指定して開き直し

ex) 文字コードを euc-jp にする場合

:e! ++enc=euc-jp

3. ヘルプの引き方

- オプション(:set xxx)
:he 'xxx

- コマンド (:yyy)
:he :yyy

- 全モードの操作コマンドリスト
:he index

- vim script の書き方
:he 41.1

- vim script の関数一覧
:he functions

4. バージョン情報をヤンクバッファ(" register)に出力

:redir @"
:version
:redir end

※この後、normal mode で "p" を実行すると出力結果が張り付けられる。


5. コピー(ヤンク)したコマンドを実行

:@"


###また、思い出し次第追記予定。。。


2008年7月22日火曜日

gvimrc - 最低限の設定


" 2008/09/29: フォントを Osaka に変更

set iminsert=0 " 初期挿入は IM-OFF
set imsearch=0 " 初期検索は IM-OFF
set linespace=0 " 行間 (point、Osaka 以外のフォントは 2 ぐらいを設定)
set visualbell " beep 音を止める(代わりに画面フラッシュ)
set guioptions-=m " メニューを消す
set guioptions-=T " ツールバーを消す
set guioptions+=a " マウス選択や、visual 選択でクリップボードにコピー
set columns=80 " 横幅文字数
set lines=50 " 行数
set guifont=Osaka-等幅:h12
" set guifont=MS_Mincho:h12:cSHIFTJIS
" set guifont=M+2VM+IPAG_circle:h12:cSHIFTJIS
" set guifont=BDF_UM+:h9

" colorscheme default " 配色設定
" set background=light

" 日本語入力のカーソル色
hi CursorIM guifg=black guibg=red

" gp でクリップボードを貼り付け
nnoremap gp "*gp

2008年4月13日日曜日

現在編集しているファイル名をクリップボードに

人に説明する際に、ファイル名や抜粋がクリップボードにコピーしたくなることがある。
以下を vimrc にでも追記すれば :FN や :FL で簡単にコピーできる。
# visual 選択中の :FL は抜粋になる


" 'ファイル名' をヤンク/クリップボードのバッファにコピー
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
command! FN let @"=expand("%:p") | if has("gui_running") | let @*=@" | endif

" 'ファイル名 :L行番号' をヤンク/クリップボードのバッファにコピー
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! s:get_filename_with_line_number(s, e)
let result = expand("%:p")." :L".line(".")
if a:s == a:e
let @" = result
else
let result .= "\n===\n"
let result .= join(getline(a:s, a:e), "\n")
let @" = result."\n==="
endif

if has("gui_running")
let @* = @"
endif
endfunction
command! -range FL call s:get_filename_with_line_number(<line1>, <line2>)

2007年7月16日月曜日

vimrc - 最低限の設定


"-- 2008/10/01: 文字コード周り見直し
"-- 2008/09/03: スクロール補助 (space -> page down, bs -> page up)
"-- 2008/04/28: fencs の並び順を修正。utf-8 の優先順位を上げた。

""" 文字コード
set enc=cp932 " vim 内部文字コード: Mac/linux=utf-8, Windows=cp932
set fencs= " 空白設定すると常に enc で開く(file open 速度上昇)
set langmenu=japanese

" 文字コード判定コマンドを定義(全角文字が化けたら :Fenc を実行)
command Fenc call s:Fenc()
function! s:Fenc()
if &modified
echo "ERR: No write since last change"
else
set fencs=iso-2022-jp,utf-8,euc-jp,cp932,ucs-2le,ucs-2
exec "se fencs-=".&enc
e!
set fencs=
endif
endfunction


""" インデント
set smartindent " インデント調整あり、コメント維持
set shiftwidth=4 " tab 文字の入力幅
set tabstop=4 " tab 文字の表示幅
set expandtab " tab を空白文字に置き換え

""" 削除
set backspace=indent,eol,start " BS で indent,改行,挿入開始前を削除
set smarttab " BS でインデント幅を削除

""" 検索
set hlsearch " 検索文字列を色づけ
set ignorecase " 大文字小文字を判別しない
set smartcase " でも大文字小文字が混ざって入力されたら区別する
set incsearch " インクリメンタルサーチ

""" バックアップ
set backup " ファイル上書きでバックアップファイルを作成
" set backupdir=/vim_back " バックアップファイルの保存場所
" set directory=/vim_back " 一時ファイルの保存場所

""" 表示
set background=light " 背景の明るさ。light or dark。(配色に影響)
syntax on " シンタックスの色づけ有効
set ruler " 左下に行列位置を表示
set showcmd " 入力中のコマンド(キー)を右下に表示
set wildmenu " コマンド入力をタブで補完
set wildmode=list:longest,full " 補完動作(リスト表示で最長一致、その後選択)
set showmatch " 括弧の入力で対応する括弧を一瞬強調

""" その他
set mouse=a " ターミナルのマウスを有効
set hidden " 編集中に他ファイルを開ける (undo 履歴は消えない)
filetype plugin indent on " ファイル別 plugin (~/.vim/ftplugin/拡張子.vim)

""" 機能追加
" enter で検索ハイライトをクリア
nnoremap <silent> <cr> :noh<cr><cr>
" visual 選択中に * で選択文字列を検索
vnoremap * y/\V<c-r>=substitute(escape(@@,"/\\"),"\n","\\\\n","ge")<cr><cr>gV

""" オリジナルコマンド追加(例)
command TimeStamp call s:TimeStamp()
function! s:TimeStamp()
call append(".", strftime("%Y/%m/%d %H:%M"))
endfunction

"""""""""""""""" vim online : tip #305