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

2014/04/20

vim コマンド ノーマルモード編

移動

key move
ge 前の単語の末尾
gi 直前の挿入が行われた場所に移動し,挿入モードになる
g;/g, 変更が行われた場所を移動 (:changes)
CTRL-O/CTRL-I 以前カーソルがあった場所に戻る/進む (:jumps)

編集

key operation
daw 単語の削除 (続くスペースを含む)
ciw 単語の編集 (続くスペースを含まない)
ca"/ci" "で囲まれた範囲の編集("を含む/含まない)
cat/cit タグで囲まれた範囲の編集(タグを含む/含まない)

2014/04/18

vim コマンド 挿入モード編

ダイグラフによる特殊文字

<C-k>{char1}{char2}
char1 char2 文字
A : Ä
s s ß
+ - ±
* X ×
o C
詳細は:h disgraphs-default

ヤンク

key Operation
<C-r>" 無名レジスタの内容を挿入
<C-r>0 ヤンクレジスタの内容を挿入

2014/04/06

vim syntax の syntax

syntax items

vim が理解する3つのタイプ
  • Keyword
  • Match
  • Region

優先順位

  1. 複数の Match や Region が同じ場所で始まった場合,最後に設定された item が優先される.
  2. Keyword は Match や Region よりも優先される.
  3. より前の位置で始まる item が優先される

Case

:syntax case [match|ignore]
Case sensitive or not.

Spell

:syntax spell [toplevel|notoplevel|default]
Syntax item のなかに入ってないテキストに対してスペルチェックをするかどうか.

Keyword

:syntax keyword {group-name} [{options}] {keyword} .. [{options}]
キーワードを設定.
  • group-name: keyword のグループ.(ex. Comment, Type)
  • keyword: syntax となる keyword
  • options: オプション.どこに来てもいい. 詳細は arguments を参照

Matches

:syntax match {group-name} [{options}] [excludenl] {pattern} [{options}]
  • group-name: match のグループ.(ex. Comment)
  • options: オプション.詳細は arguments を参照
  • excludenl: 行末 "$" を含むパターンに対して,行末以降まで拡張しない.
  • pattern: 正規表現のパターン

Regions

:syntax region {group-name} [{options}]
               [matchgroup={group-name}]
               [keepend]
               [extend]
               [excludenl]
               start={start_pattern} ..
               [skip={skip_pattern}]
               end={end_pattern} ..
  • group-name: region のグループ
  • options: オプション.詳細は arguments を参照
  • matchgroup={group-name}: region と,その開始,終了パターンで別のハイライトを用いる
  • keepend: 内包された match が終了パターンを超えないようにする
  • extend: この region を含む item の "keepend" を上書きする
  • start={start_pattern}: region の開始のパターン
  • skip={skip_pattern}: end_pattern を探さないパターン
  • end={end_pattern}: region の終了のパターン

arguments

すべての command で使える

  • conceal:concealable とする
  • ccar:'conceal' とされている keyword のなかでも表示される文字
  • contained:トップレベルでは認識されず,別の match の中で指定された時に認識される
  • containedin:
  • nextgroup:
  • transparent:
  • skipwhite:
  • skipnl:
  • skipempty

match と region で使える

  • contains={group-name}:ここで指定されたグループは,そのアイテムのなかで始まることができる.ms=me=でオフセットを設定可能.
  • fold:折りたたみレベルを1つ増加させる
  • display:検出されたハイライトが表示されない時にはスキップされる.行末を超えて継続しない場合など.
  • extend:

region で使える

  • oneline:一行のみで完結
  • concealends:

Group name

Comment
Constant
String
Character
Number
Boolean
Float
Identifier
Function
Statement
Conditional
Repeat
Label
Operator
Keyword
Exception
PreProc
Include
Define
Macro
PreCondit
Type
StorageClass
Structure
Typedef
Special
SpecialChar
Tag
Delimiter
SpecialComment
Debug
Underline
Ignore
Error
Todo

2012/04/08

[vim] Vimball を任意のディレクトリに展開する

Vimscript が Vimball 形式(*.vba.gz)で配布されている場合,そのファイルをvimで開いて でインストール可能.ただし,デフォルトで~/.vim ディレクトリに展開されてしまうようで, vim-pathogenなどでスクリプトを管理している場合はちょっと不便. とすれば,任意のパスにインストール可. 参照

2010/04/20

[vim] テキストを自動的に折り返す

Vimでテキストを自動的に折り返すには,


とすれば,80文字で自動的に改行がはいる.

一度自動で改行したテキストを編集して改行がずれたときは,
適当に範囲を選択するなどして,"gq"でまた整形してくれる.