vimメモ 

vimメモ

コマンドラインオプション

  • -R
    リードオンリ。vi/vimの代わりにviewというコマンド名で起動しても同じ。ただしコマンド:w!で書き込めてしまう。
  • -M
    絶体に書き込みしない。参照::modifiable
  • -b
    バイナリファイルの編集モード。ファイルI/Oをバイナリモードで行い、いくつかのオプションを設定する。(binary' on, 'textwidth' = 0, 'modeline' off, 'expandtab' off) オプション'binary'=onとしても同様。('binary'はファイルを読み込む前に設定すること)
    実行プログラムファイルは各ビットがファイルの中の位置が変わってはいけない。(多分、うまく動かなくなるだろう。)

コマンド/編集関係

  • i       挿入モード。[ESC]で終了。
  • ^[
    [ESC]のalias
  • v
    範囲選択開始(Visual mode)
  • V
    行単位範囲選択開始(Visual mode)
  • ^V
    矩形範囲選択開始(Visual mode)
  • y
    範囲選択終了、Yank。
  • p
    Yankしたものをペースト。カーソルの後ろに。
  • P
    Yankしたものをペースト。カーソルの前に。
  • Y
    1行Yank
  • yaw
    1単語Yank
  • "By
    バッファBへYank。yの代わりにYやyawでも。
  • "Bp
    バッファBをペースト。
  • !コマンドライン   コマンドラインを実行する。コマンドラインに"%"を含めると、それは現在編集中のファイルパスで置き換えられる。
  • !!コマンドライン   コマンドラインの出力を挿入する。コマンドラインに"%"を含めると、それは現在編集中のファイルパスで置き換えられる。

:コマンド

  • :q
    終了
  • :help
    ヘルプ表示
  • :help vimrc
    起動時の初期化処理についてのヘルプ
  • :edit FILE
    ファイルFILEを編集。'e'と省略可能。
  • :w[rite] [FILE]
    ファイルへ書きだし。FILEを指定した場合にはファイルFILEへ書きだし。'w'と省略可能。
  • :next
    次ファイルへ移動。
  • :Nnext
    N個次のファイルへ移動
  • :previous
    前ファイルへ移動
  • :last
    直前に編集していたファイルへ移動
  • :e#
    たぶん、これも直前に編集していたファイルへ移動。
  • :first
    最初に編集していたファイルへ移動
  • :args
    起動時引数出力
  • :args FILE [FILE2]...
    編集ファイルをファイルFILE [FILE2]...へ変更する。いわゆる「閉じて開く」。シェルのワイルドカードも使える模様。
  • :1,$ s/BEFORE/AFTER/
    ファイル先頭からファイル末尾まで文字列置換実行。BEFOREAFTER 先頭の1,$を省略した場合にはカレント行だけが対象。
  • &
    直前のexモードコマンドの繰り返し。

:コマンド/設定関係

  • :set ts=N
    [TAB]をNに設定
  • :set [no]autoindent
    オートインデント有効/無効
  • :set [no]number
    行番号表示/非表示
  • :set [no]list
    コントロール文字表示/非表示
  • :set [no]showmatch
    括弧の対応表示を行う/行わない
  • :set [no]autowrite
    自動書き出しモード
  • :set backup
    バックアップファイルを作成する。バックアップファイルはFILE~。
  • :set backupext=.bak
    バックアップファイル名をFILE.bakに指定する。
  • :set backupdir=DIR
    バックアップファイルを編集ファイルのディレクトリではなく、ディレクトリDIRに作成する
  • :set patchmode=.orig
    編集前のファイルをファイルFILE.origとして保存しておく。
  • :set [no]modifiable
    -Mオプションのトグル。
  • :nnoremap w :w
    1キーでファイル保存できる設定
  • :NoMatchParen
    カーソルが括弧にある場合、対応する括弧をハイライト表示しない。
  • :DoMatchParen
    :NoMatchParenの反対。
  • :let loaded_matchparen = 1
    そもそも括弧をハイライト表示するプラグインをロードしない。.vimrcに記述する。
  • :hi MatchParen ctermbg=blue guibg=lightblue
    こういうのもある。

ウィンドウ分割

  • :new
    ウィンドウ分割して空のファイル編集を行う。
  • :[NUM]split [FILENAME]
    ウィンドウ分割してファイルFILENAMEを開く。FILENAMEを省略した場合には現在のウィンドウを複製する。NUMを指定した場合には新しいウィンドウの行数指定になる。
  • :close
    ウィンドウクローズ。:quitや"ZZ"も同様だが:closeの場合には最後のウィンドウはクローズしない。
  • :only
    現在のウィンドウのみを残してクローズ
  • ^W w
    フォーカス移動
  • [NUM]^W +
    ウィンドウ行数増加。NUMを指定した場合にはその行数だけ増加する。
  • [NUM]^W -
    ウィンドウ行数減少。NUMを指定した場合にはその行数だけ減少する。
  • [NUM]^W _
    指定行数にウィンドウサイズを変更する。NUMを省略すると可能な範囲で最大サイズへ変更する。
  • :tabedit [FILENAME]
    タブ編集モード。
  • :tab split
    タブを増やす。
  • gt
    次のタブへ移動。

タグジャンプ

telnetのエスケープキー^]とタグジャンプキー^]とのバッティング解消について。telnet経由でVimを利用している時にタグジャンプを行おうとすると、タグジャンプの代わりにtelnetのプロンプトへ移動してしまう場合がある。大抵のバージョンのtelnetはデフォルトのエスケープキーを変更できたり、無効にできるようになっている。

エスケープキー無効化
telnet -E HOSTNAME

エスケープキー変更
telnet -e ESCAPE_CHARACTER HOSTNAME

telnetの代わりにSSHを使うのがより良いかも。
  • ctags FILENAME
    タグファイルを作成するコマンド。ctags 5.5.4はC/C++だけでなくPerlにも対応している模様。実行するとカレントディレクトリにファイルtagsを作成する。ファイルtagsが存在する状態でタグジャンプを行える。
  • ^]
    タグジャンプ。カーソル位置のタグ(カーソルがキーワード上になければカーソルの右に最初に出現するキーワード)に対応する場所へジャンプする。
  • :[COUNT]ta[g][!] {ident}
    {ident}を定義している場所へジャンプ。{ident}には"tag stack"(?)を入れること。{ident}は正規表現も受け付ける(tag-regexpを参照)。複数のタグがマッチする場合にはCOUNT番目のものへジャンプする。COUNTを省略した場合には最初のものへジャンプ。その他のパターンマッチタグへのジャンプについてはtag-matchlistを参照。[!]についてはtag-!を参照。

バイナリ編集

コマンドラインオプション-bを指定するか、ファイルを開く前にオプション'binary'を有効にする。実行プログラムファイルは各ビットがファイルの中の位置が変わってはいけない。(多分、うまく動かなくなるだろう。) 16進表示であれこれするためには :help xxd して指示に従うのが良い模様。xxdはヘックスダンプコマンド。

  • endofline
    有効にすることでファイル書き出しの際にファイル末尾のEOFを追加する。通常、バイナリファイルでは不要。

コメント

承認待ちコメント

このコメントは管理者の承認待ちです

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://haginov.blog35.fc2.com/tb.php/60-20643ef3