Hatena::ブログ(Diary)

英語とプログラミング気まぐれ日記 このページをアンテナに追加 RSSフィード

2010-05-09

[][] Mac OS X 上のvim文字化け

急に文字化けするようになった。

fencsとencはちゃんと設定されているし、Terminal.appの「文字エンコーディング」もutf-8に設定されている。


色々悩んだ挙句、Terminal.appの環境設定が間違っていることが原因だと分かった。

環境設定 → 設定 → 詳細 → 「非ASCII入力をエスケープ」のチェックを外す

これで文字化けしなくなった。


何かの拍子にチェックを付けてしまったのかなぁ。。。

2008-09-14

[] Macvim で編集中の文章をクリップボードに保存したい

:w !pbcopy<CR>

でできる。

map しておくと便利。
:nnoremap ,cp :w !pbcopy<CR>

参考

あきおの日記:情報源 (コメントにも注目)

2008-07-24

[][] vim のインストール

port でインストールした。

$ sudo port install vim +huge +multibyte +clipboard +signs +ruby +rubyinterp +perl +perlinterp +python +pythoninterp

.vimrc は以下のものを使用している。

2008-06-15 - 英語とプログラミング気まぐれ日記

2008-06-22

[] vim の起動オプション(コマンドライン引数)

$ vim --help

で見られる。

Readonly モードのオプション名を思い出せないときは、

$ LANG=C vi --help|grep -i read

などとすればよいかも。

[] .vimrc の例

が、

$VIMRUNTIME/vimrc_example.vim

にある。参考になるかは微妙なところだけど。

[] CTRL-x で自動入力(補完)する

以下のようなファイルを作って試してみると便利さがすぐ分かる。

include.h

#define MAX(x, y) ((x) < (y) ? (y) : (x))
#define MIN(x, y) ((x) < (y) ? (x) : (y))
int sum(int i1, int i2)
{
    return (i1 + i2);
}

main.c

#include "include.h"
#define MORE "/usr/ucb/more"

手順

1.CTRL-x でサブモードに入る

2.以下の表のコマンドをとにかく試してみれば分かる

コマンド意味
CTRL-dマクロ定義
CTRL-fファイル名
CTRL-k辞書ファイル
CTRL-i現在のファイルと #include ファイル
CTRL-l行全体
CTRL-]タグ
CTRL-pCTRL-x なしの状態の CTRL-p と同じ(前候補を検索)
CTRL-nCTRL-x なしの状態の CTRL-n と同じ(次候補を検索)

参考

ViIMproved‐Vim完全バイブル(p.147)

[] コンパイルオプションや設定ファイルの場所を確認したい

そういう場合は、

:version

で表示できる。

[] vim の変数のスコープ

とりあえず、「s:」と「l:」だけ覚えておけばよさそう。

:help internal-variables で調べられる

There are several name spaces for variables.  Which one is to be used is
specified by what is prepended:

                (nothing) In a function: local to a function; otherwise: global
|buffer-variable|    b:   Local to the current buffer.
|window-variable|    w:   Local to the current window.
|tabpage-variable|   t:   Local to the current tab page.
|global-variable|    g:   Global.
|local-variable|     l:   Local to a function.
|script-variable|    s:   Local to a |:source|'ed Vim script.
|function-argument|  a:   Function argument (only inside a function).
|vim-variable|       v:   Global, predefined by Vim.

参考

Software Design (ソフトウエア デザイン) 2008年 07月号 [雑誌](p.144)

ViIMproved‐Vim完全バイブル(p.427)

2008-06-15

[]現在の .vimrc をメモしておく

随時ここに書き足していく予定。

何だか楽しくなってきた。

" .vimrc for mac

" common settings
:set textwidth=78
:set nocompatible
:set background=dark
:syntax on
:set number
:set tabstop=4
:set shiftwidth=4
:set expandtab
:set shiftround
:set incsearch
:set hidden
":set fenc=utf-8
:set fileencodings=euc-jp,iso-2022-jp,cp932
:set enc=utf-8

" set list mode (show tab as sequence of ">-")
:set list
:set listchars=tab:>-

" set colorscheme
:colorscheme desert

" refer to :help filetype
:filetype on
" disable cindent when you want to use smartindent.
":set nocindent
":set smartindent
:filetype indent on
" refer to :help ftplugins
:filetype plugin on

":nmap ,e :!open %<CR>
augroup filetypedetect
"au BufNewFile,BufRead *.xul>---setf xul
"au BufNewFile,BufRead *.xul>---set ft=xul
au BufNewFile,BufRead *.xul>setlocal ft=xul
augroup END 

" key mappings
:inoremap <c-j> <CR>
:nnoremap <c-k> :bnext<CR>
:nnoremap <c-l> :bprevious<CR>
:nnoremap ,ptv <Esc>:'<,'>! perltidy<CR>
:nnoremap ,ctv <Esc>:! cc % && ./a.out<CR>
:nnoremap ,cp :w !pbcopy<CR>

設定したら、「:source %」で再読み込みできる。

TODO

インデントまわりのことがよく分かってないので、help読む
*30.3*  Automatic indenting
:help 30.3
読んだ。
30.4 Other indenting
によると、
'smartindent' is not as smart as 'cindent', but smarter than 'autoindent'.
ということらしい。じゃあ cindent を常に使えばいいんじゃ・・・。

参考

ViIMproved‐Vim完全バイブル:最高