memo.xight.org

日々のメモ

カテゴリ : vim

2ページ目 / 全3ページ

PHP Manual in VIM

使用法

  1. PHP Manual をダウンロード
  2. vim/doc ディレクトリに設置
  3. vim を起動して

:helptags .vim/doc

  4. .vimrc の編集
     以下を追加

if has("autocmd")
	autocmd BufNewFile,Bufread *.php,*.php3,*.php4 set keywordprg="help"
endif

  5. 関数名の上で K を入力することでヘルプを閲覧可能.

Reference

  Planet XML - PHP Manual in VIM
  http://planetxml.de/vim-php-manual.php

via

  cl.pocari.org - 2004-12-06
  http://cl.pocari.org/2004-12.php#2004-12-06-2

Chalice for Vim

Summary

  2ちゃんねる閲覧Vimプラグイン

必要なもの

  Vim
  cURL
  gzip
  iconv
  qkc か nkf

DebianでcURLとqkcをインストールする

# aptitude install curl qkc
# ./install.sh


文字化け? しているので編集

# vi /etc/vim/plugin/chalice.vim
268: let s:label_vimtitle = 'Chalice 〜2ちゃんねる閲覧プラグイン〜'


Reference

  KaoriYa.net - Chalice for Vim
  http://www.kaoriya.net/#CHALICE
Debian パッケージディレクトリ検索 (バイナリ) - curl
  QKC Home Page
  http://hp.vector.co.jp/authors/VA000501/

文字コードの自動認識

.vimrcに以下を追加

if &encoding !=# 'utf-8'
	set encoding=japan
endif
set fileencoding=japan
if has('iconv')
	let s:enc_euc = 'euc-jp'
	let s:enc_jis = 'iso-2022-jp'
	" iconvがJISX0213に対応しているかをチェック
	if 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\|jisx0213\)$'
			set fileencodings+=cp932
			set fileencodings-=euc-jp
			set fileencodings-=euc-jisx0213
			let &encoding = s:enc_euc
		else
			let &fileencodings = &fileencodings .','. s:enc_euc
		endif
	endif
	unlet s:enc_euc
	unlet s:enc_jis
endif

Point

  euc-jp が fileencodings の前の方に設定されていると,
  cp932 や utf-8 で書いたファイルが文字化けてしまう

Reference

  KaWaZ.jp - PukiWiki - vim
  http://www.kawaz.jp/pukiwiki/?vim

VimでPHP関数の辞書を作成する方法

vim.sourceforge.net から PHP.dictを取得

  $HOME/.vim/PHP.dict に保存

.vimrc に以下を記述

autocmd FileType php  :set dictionary=$HOME/.vim/PHP.dict

方法

Ctrl-x Ctrl-k

- Reference
  Vim で PHP 関数の辞書を作成する方法についてのメモ
  http://www.asahi-net.or.jp/~wv7y-kmr/memo/vim_php.html
  PHP-dictionary - A PHP-dictionary as a building stone for scripts : vim online
  http://vim.sourceforge.net/scripts/script.php?script_id=534

vim 6.2 - Source からの Install

Tar ballを持ってくる

  ftp://ftp.vim.org/pub/vim/unix/
  vim-6.2-src1.tar.gz
  vim-6.2-src2.tar.gz
  vim-6.2-rt1.tar.gz
  vim-6.2-rt2.tar.gz
  ftp://ftp.vim.org/pub/vim/extra/
  vim-6.2-extra.tar.gz
  vim-6.2-lang.tar.gz

解凍

$ tar -xzvf vim-6.2-src1.tar.gz
$ tar -xzvf vim-6.2-src2.tar.gz
$ tar -xzvf vim-6.2-rt1.tar.gz
$ tar -xzvf vim-6.2-rt2.tar.gz
$ tar -xzvf vim-6.2-extra.tar.gz
$ tar -xzvf vim-6.2-lang.tar.gz
$ cd vim62

- Patch をあてる
  ftp://ftp.vim.org/pub/vim/patches/6.2.*

$ zsh
$ patch -p0 -b <patches/6.2.{001..127}

- configure - make - make install

$ ./configure --enable-multibyte \
              --with-features=big \
              --disable-gui \
              --without-x
$ make
$ make test
# make install

Folding - 折り畳み機能

Folding 操作一覧

Fold を作成する zf
Fold を開く (Open) zo
Fold を閉じる (Close) zc
Fold を全部開く (Reduce) zr
Fold を全部閉じる (More) zm
多重化した Fold を全部開く zR
多重化した Fold を全部閉じる zM
- Tips
  ビジュアルモードを使用するとFoldの作成が楽になる

Reference

  KaoriYa.net - Vim日本語ドキュメント - usr_28.txt
  http://www.kaoriya.net/vimdoc_j/usr_28.txt

補完

補完操作一覧

関数の補完 (前方検索) C-n
関数の補完 (後方検索) C-p
ファイル名補完 C-x C-f
辞書補完 C-x C-k
- 注意 - 関数補完
  編集中のファイルに一度でも出現していなければ補完できない

注意 - 辞書補完

  :set dictionary=file
  として辞書を指定する.
  辞書のフォーマットは単語を改行区切りで記述する

Reference

  C editing with VIM HOWTO 単語の自動補完
  http://www.linux.or.jp/JF/JFdocs/C-editing-with-VIM-HOWTO/auto-complete.html

最短一致

方法

  \{-} を使用する.

:help /\{-

  を参照のこと

vim 6.1 Solaris 8 でのコンパイル

入手先

  Source : http://www.vim.org/
  Patch : ftp://ftp.vim.org/pub/vim/patches

必要なファイル

  vim-6.1.tar.bz2
  vim-6.1-extra.tar.gz
  vim-6.1-lang.tar.gz
  6.1.1-100.gz
  6.1.101-200.gz
  6.1.201-300.gz

展開とパッチ当て

$ tar -jxvf vim-6.1.tar.bz2
$ tar -zxvf vim-6.1-extra.tar.gz
$ tar -zxvf vim-6.1-lang.tar.gz
$ cd vim61
$ zcat ../6.1.1-100.gz | patch -p0
$ zcat ../6.1.101-200.gz | patch -p0
$ zcat ../6.1.201-300.gz | patch -p0

- configure

$ ./configure --enable-multibyte \
              --with-features=big \
              --disable-gui \
              --without-x


src/auto/config.mk の 128行目をコメントアウト

### If the *.po files are to be translated to *.mo files.
# MAKEMO         = yes

makeしてインストール

$ make
$ make test
# make install

カーソル位置の単語を取得する

  <C-R><C-W>
  にカーソル位置の単語が入る.

応用例

" カーソルの位置の単語をGoogleから検索
nmap ,sg      :!w3m 'http://www.google.com/search?hl=ja&inlang=ja&ie=EUC-JP&oe=EUC-JP&lr=&q=<C-R><C-W>'<CR>
" カーソルの位置の単語をJava API Manualから検索
nmap ,sj      :!w3m 'http://apollo.u-gakugei.ac.jp/man/java/namazu.cgi?max=50&sort=score&query=<C-R><C-W>'<CR>
" カーソルの位置の単語をPHP Manualから検索
nmap ,sp      :!w3m 'http://apollo.u-gakugei.ac.jp/man/php/namazu.cgi?whence=0&max=50&result=normal&sort=score&query=<C-R><C-W>'<CR>
" カーソルの位置の単語をGoo 英和辞典から検索
nmap ,sej     :!w3m 'http://dictionary.goo.ne.jp/search.php?kind=ej&MT=<C-R><C-W>'<CR>
" カーソルの位置の単語をGoo 和英辞典から検索
nmap ,sje     :!w3m 'http://dictionary.goo.ne.jp/search.php?kind=je&MT=<C-R><C-W>'<CR>
" カーソルの位置の単語をGoo 国語辞典から検索
nmap ,sjj     :!w3m 'http://dictionary.goo.ne.jp/search.php?kind=jn&MT=<C-R><C-W>'<CR>
" カーソルの位置の単語をDebian Packageから検索
nmap ,sdebian :!w3m 'http://packages.debian.org/<C-R><C-W>'<CR>
" カーソルの位置の単語をAmazonから検索
nmap ,samazon :!w3m 'http://amazon.co.jp/o/ASIN/<C-R><C-W>'<CR>
" カーソルの位置の単語をWikipediaから検索
nmap ,swiki   :!w3m 'http://ja.wikipedia.org/wiki/<C-R><C-W>'<CR>

追記

  砂岡さんの カーソルの下の単語を検索する というメモから思いついた.

Highlight を Toggle にする.

はじめて 簡単なvim のスクリプトを書いてみた.

set hlsearch
" C-h でハイライトをToggle
nmap <C-H> :call ToggleHighlight()<CR>
function! ToggleHighlight()
	if &hlsearch != ''
		set nohlsearch
		echo 'Highlight Off'
	else
		set hlsearch
		echo 'Highlight On'
	endif
endfunction

Reference

  新館 : vimエディタ-ユーザマニュアル和訳
  http://www.water.sannet.ne.jp/clean/gvim.doc/doc/usr_41.txt

vim で文字コード指定してファイルを開く方法

:e ++enc=[文字コード] [File名]

  ex) :e ++enc=euc-jp hoge.c # hoge.c を euc-jp として開く
      :e ++enc=cp932 # 現在開いてるファイルを cp932 として開く

.vimrc に記述するなら

" 開いているファイルの文字コードを指定して開きなおす
" EUC-JP
nmap ,ee :e ++enc=euc-jp<CR>
" SJIS
nmap ,es :e ++enc=cp932<CR>
" JIS
nmap ,ej :e ++enc=iso-2022-jp<CR>
" UTF-8
nmap ,eu :e ++enc=utf-8<CR>

Vim Tips

/* でコメント開始, / でコメント終了

  $HOME/.vimrc に記述

set comments=sl:/*,mb:*,elx:*/

C ソースコードとその他のファイルのインデント

  http://www.kaoriya.net/vimdoc_j/indent.txt

Cのインデントはこの4つのオプションで制御されている:

  cindent Cの自動インデントを有効化する.
  cinkeys 再インデントの引金となる挿入モードでのキーを指定する.
  cinoptions 好みのインデントスタイルを設定する.
  cinwords 次の行から特別なインデントを開始するキーワードを定義する.

Reference

  C editing with VIM HOWTO
  http://www.linux.or.jp/JF/JFdocs/C-editing-with-VIM-HOWTO/auto-format.html

vim tips

vim インデントを整える

  gg=G
gg ファイルの先頭に移動し
= インデント修正を
G 最後まで行う

^M を入力する方法

<C-V><CR>

カーソルの下にある単語を検索する

/<C-R><C-W><CR>

検索してマッチした語句のハイライトを消す

:noh