-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathvarious.jax
816 lines (724 loc) · 41.2 KB
/
various.jax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
*various.txt* For Vim バージョン 9.1. Last change: 2025 Apr 21
VIM リファレンスマニュアル by Bram Moolenaar
様々なコマンド *various*
1. 様々なコマンド |various-cmds|
2. less、more の代わりに Vim を使う |less|
==============================================================================
1. 様々なコマンド *various-cmds*
*CTRL-L*
CTRL-L 画面を消去して再描画します。すでに入力されているキーを
すべて処理してから再描画します。
*:redr* *:redraw*
:redr[aw][!] 画面をすぐに再描画します。! を付けたときは、画面を消去
してから再描画します。
スクリプトまたは関数 (または 'lazyredraw' が設定されて
いる場合はマッピング) で画面を再描画するために使用でき
ます。
*:redraws* *:redrawstatus*
:redraws[tatus][!] カレントウィンドウのステータスラインを再描画します。
! を付けたときは、すべてのステータスラインを再描画しま
す。
'statusline' に自動更新されない項目が含まれている場合
に、ステータスラインを更新するのに便利です。
コマンドラインの編集が開始すると再描画はその後にまで延
期されます。
*:redrawt* *:redrawtabline*
:redrawt[abline] タブページ行を再描画します。'tabline' に自動更新されな
い項目が含まれている場合に、タブページ行を更新するのに
便利です。
*N<Del>*
<Del> ノーマルモードで数値 (|count|) を入力しているときは、
数字の最後の桁を削除します。
Note: 同じことをするのに <BS> を使いたい場合は、次の
マップを .vimrc に追加してください: >
:map CTRL-V <BS> CTRL-V <Del>
< <Del> が望みどおりに機能しない場合には|:fixdel|を参照。
{訳注: "CTRL-V <BS>"はCTRL-Vを押してから<BS>を押す。}
:as[cii] *ga* *:as* *:ascii*
ga カーソル位置の文字の文字コードを、10/16/8 進数で表示し
ます。
覚え方: Get Ascii value (ASCIIコードを取得)
カーソルが 'R' の上にあるときは次のように表示されます:
<R> 82, Hex 52, Octal 122 ~
ASCII 以外の文字がオプション 'isprint' に設定されてい
て、表示可能になっている場合には、特殊な表示形式もいっ
しょに表示されます。
文字コードが 127 より大きいときには <M-x> という形式も
表示されます。例:
<~A> <M-^A> 129, Hex 81, Octal 201 ~
<p> <|~> <M-~> 254, Hex fe, Octal 376 ~
(<p> には実際の特殊文字が表示されます。)
ファイル中の <Nul> 文字は内部的には <NL> として保存さ
れていますが、次のように表示されます:
<^@> 0, Hex 00, Octal 000 ~
合成文字も表示されます。'maxcombine' の設定は影響しま
せん。
文字がダイグラフとして入力されている場合、その文字を生
成するために使用できる 2 文字も出力します:
<ö> 246, Hex 00f6, Oct 366, Digr o: ~
これは、ö を入力するために CTRL-K o : とタイプすればよ
いことを意味しています。
*g8*
g8 カーソル位置の文字のバイト列を 16 進数で表示します。エ
ンコーディングが |UTF-8| の場合のみ正しく機能します。
合成文字も表示されます。'maxcombine' の設定は影響しま
せん。
2 文字の合成文字が結合されている文字の表示例:
e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
*8g8*
8g8 カーソル以降の不正な UTF-8 バイト列を検索します。
次の二つの状況で機能します。
1. 'encoding' が 8-bit エンコーディングの場合。
2. 'encoding' が "utf-8" で、'fileencoding' が 8-bit
エンコーディングの場合。
UTF-8 のファイルを開いたはずが、不正なバイト列が含まれ
ていて、別の 8-bit エンコーディングとして開かれてし
まった場合などに使ってください。
検索がファイル末尾に達しても、ファイル先頭に戻って検索
を継続しません。
Note: カーソルがすでに不正なバイト列の上にある場合は、
カーソルは移動しません。
*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
範囲 [range] の行を表示します (省略時は現在行を表示)。
Vi との互換性のため、`:[range]|` と表記することもでき
る (|:bar| を参照)。バッファが空の場合はエラーになる。
Note: テキストファイルを印刷する方法については
|:hardcopy| を参照してください。GUI を使用している場合
は、メニューの File.Print から印刷できます。
[flags] については |ex-flags| を参照してください。
パターンにマッチした行だけを表示するのに、|:filter| コ
マンドを使うことができます。
:[range]p[rint] {count} [flags]
[range] の開始行から {count} 行を表示します([range]を
省略した場合は現在行から開始 |cmdline-ranges|)。
[flags] については |ex-flags| を参照してください。
*:P* *:Print*
:[range]P[rint] [count] [flags]
:print と同じです。シフトキーを長く押し続けてしまう人
のために追加されました。
このコマンドは |Vim9| script ではサポートされません。
Note: ユーザーコマンドでこのコマンドを上書きできます。
[flags] については |ex-flags| を参照してください。
*:l* *:list*
:[range]l[ist] [count] [flags]
:print と同じですが、表示できない文字は '^'を付けて表
示し、行末に $ を置きます。表示は 'listchars' オプショ
ンの設定で変更できます。
[flags] については |ex-flags| を参照してください。
*:nu* *:number*
:[range]nu[mber] [count] [flags]
:print と同じですが、先頭に行番号を付加します。
(オプション 'highlight' と 'numberwidth' も参照)
[flags] については |ex-flags| を参照してください。
*:#*
:[range]# [count] [flags]
:number と同じです。
*:#!* *vim-shebang*
:#!{anything} 無視されます。そのため、次のようにして Vim script を実
行することができます: >
#!vim -S
let mylogbook='$HOME/logbook.md'
exe $':e {mylogbook}'
$
put ='## ' .. strftime('%d. %b %Y')
norm! o
<
新しい日記エントリを作成するために、スクリプトを実行可
能にして実行します。
*:z* *E144*
:[range]z[+-^.=][count] [range]に指定した行の周辺を表示します。[range] を省略
した場合は現在行の周辺を表示します。
行の範囲をどれだけ表示するかは [count] に指定します。
[count] を省略し、ウィンドウが一つだけなら 'scroll' オ
プションの 2 倍の数が、そうでなければカレントウィンド
ウの高さから 3 を引いた数が使われます。これは、下の表
の "画面" の値です。
[count] が指定された場合は 'window' オプションがその値
に設定されます。
:z はマークを付加して使うこともできます。次の効果があ
ります。
記号 開始行 終了行 新しいカーソル位置 ~
---- ------ ------ ----------
+ 現在行 1画面先 1画面先
- 1画面前 現在行 現在行
^ 2画面前 1画面前 1画面前
. 半画面前 半画面先 半画面先
= 半画面前 半画面先 現在行
マークを省略した場合は、"+" が使われます。マークが "="
の場合は、現在行の周りにマイナス記号で作った線が表示さ
れます。
*:z!*
:[range]z![+-^.=][count]
":z" と同じですが、[count]が指定されてない時、デフォル
トでVimのウィンドウの高さ-1になります。
:[range]z[!]#[+-^.=][count] *:z#*
":z" や ":z!" と同じですが、行番号も表示します。
*:=*
:= [flags] 最終行の行番号を表示します。
[flags] については |ex-flags| を参照してください。
:{range}= [flags] {range} で指定した範囲の最終行の行番号を表示します。例
えば、次のコマンドは現在行の行番号を表示します: >
:.=
< [flags] については |ex-flags| を参照してください。
:norm[al][!] {commands} *:norm* *:normal*
ノーマルモードコマンド {commands} を実行します。コマン
ドラインからノーマルモードのコマンドを実行できます。
{commands} は、ノーマルモードで入力されたときと同じよ
うに実行されます。{commands} による変更は、一回のアン
ドゥで取り消されます。
エラーが発生すると実行停止します。
[!] を付けた場合はマップは適用されません。
付けなかった場合、このコマンドが非再帰マップ
(|:noremap|) 内で使われたとしても、引数は再マップされ
ます。
{commands} は実行を完了する (ノーマルモードに戻る) 必
要があります。
{commands} が完了しない場合は、最後のコマンドが<Esc>
や <C-C> で終了したのと同じように動作します。
挿入モードも必ず完了します (挿入モードを開始するには
|:startinsert| を参照)。":" コマンドも必ず完了します。
"Q" や "gQ" を使って Ex モードを開始することはできませ
ん。
":normal" の実行中は画面は更新されません。
{commands} の最初にスペースは置けません。そうしたい場
合はスペースの前にカウント指定の 1 (数字の 1) を置いて
ください。"1 " は 1 つのスペースになります。
{command} の実行ではオプション 'insertmode' は無視され
ます。
'|' は :normal コマンドの一部として処理されるので、こ
のコマンドの後に他のコマンドを続けて書けません。
:normal コマンドは 'maxmapdepth' の制限内で再帰的に呼
び出すことができます。
|:execute| コマンドには Vim script の式を指定できるの
で、印字可能文字を使って制御文字を入力することもできま
す。
例: >
:exe "normal \<c-w>\<c-w>"
:{range}norm[al][!] {commands} *:normal-range*
{range} の各行に対してノーマルモードコマンド{commands}
を実行します。{commands} はカーソルが行頭にある状態で
実行されます。その他は範囲指定の無い ":normal" コマン
ドと同じです。
*:sh* *:shell* *E371*
:sh[ell] シェルを起動します。シェルを終了 ("exit"コマンドを実行)
すると Vim に戻ってきます。オプション 'shell' に設定さ
れているシェルコマンドを使います。
*E360*
Note: Amiga では、コンパイラから QuickFix モードで Vim
が起動された場合には、コンパイラが標準入力を非対話型
モードにしてしまうので使用できません。
*:!cmd* *:!*
:!{cmd} シェルで {cmd} を実行します。'shell' と 'shelltype' も
参照。フィルターコマンドについては、|:range!| を参照。
Vim は、オプション 'shell'、'shcf'、'sxq'、'shq' を使
用して、次の順序でコマンドラインを構築する:
`&sh &shcf &sxq &shq {cmd} &shq &sxq`
したがって、'sxq' と 'shq' の両方を設定することは可能
だが、ほとんど役に立たない。`{cmd}` 内の追加のエスケー
プは、'sxe' オプションによるものである可能性もある。
また、{cmd} 内のすべての |cmdline-special| 文字は、シェ
ルに渡される前に Vim によって置き換えられる。
*E34*
{cmd} の中の '!' は以前使用した外部プログラムに置
き換えられます ('cpoptions' も参照)。'!' の前にバック
スラッシュがある場合はバックスラッシュが削除され '!'
は置き換えられません。
例: ":!ls" を実行後の ":!echo !\! \\!" は
"echo ls ! \!" と解釈、実行されます。
{cmd} の中の '|' はシェルに渡されます。'|' を使って
Vim コマンドを続けて書くことはできません。(|:bar|参
照)。
{cmd} が "%" を含んでいたらそれは現在のファイル名に展
開されます。"#" を含んでいたらそれは代替ファイル名に展
開されます。ファイル名に入っている特殊文字はエスケープ
されないので、特殊文字の特殊な意味を打ち消すにはクォー
トを使います: >
:!ls "%"
< ファイル名が "$" を含んでいるならシングルクォートを使
うとより良いでしょう、ただしそれでうまくいくのはファイ
ル名にシングルクォートが入っていない場合だけです: >
:!ls '%'
< 次の例は常に機能します。ただし長い: >
:exe "!ls " .. shellescape(expand("%"))
< "%" か "#" のリテラルを得るにはバックスラッシュを前に
置きます。例えば、"%" で始まるファイルの一覧なら: >
:!ls \%*
<
{cmd} の終わりを示す改行文字 (newline) 以降の文字は、
次の ":" コマンドとして解釈されます。改行文字の前に
バックスラッシュがある場合は、バックスラッシュは削除さ
れ、改行文字は {cmd} の一部として解釈されます。改行文
字の前にバックスラッシュがいくつあっても、一つだけが削
除されます。
Unix ではシェルを非対話型モードで起動します。対話型
モードで起動したい場合 (aliasを使いたい場合など) は、
'shellcmdflag' に "-ic" を設定してください。
Win32の場合は|:!start|も参照。
外部プログラムを実行した後で、開いているファイルのタイ
ムスタンプとサイズがチェックされます |timestamp|。
外部プログラムはメッセージを出力するかもしれないので、
外部プログラムを実行した後にスクリーンが再描画されます。
そのため、プログラムの出力を見逃してしまわないように、
hit-enter プロンプトが表示されます。プロンプトを表示し
たくない場合は、次のようにします: >
:silent! !{cmd}
< これでスクリーンは再描画されません。外部プログラムが何
かを出力した場合は CTRL-L や ":redraw!" で再描画できま
す。しかし、これは termcap の |t_ti| と |t_te| のエン
トリに何が設定されているかに依存します。
ヒント: Vim ウィンドウで {cmd} を実行する場合は、
|:terminal| コマンドを使用する。
`:term ++shell ++close {cmd}` は、`:!{cmd}` の機能に近
いものになる。
*:!!*
:!! 最後の ":!{cmd}" を繰り返します。
*:ve* *:ver* *:version*
:ve[rsion] エディタのバージョンを表示します。コンパイル時に
"__DATE__" が利用可能だった場合には、コンパイルされた
日時も表示されます。利用不可だった場合は、リリースの最
終修正日時が表示されます。
Vim の、どの機能が有効になっているかも表示されます。機
能名の前に '+' があれば、その機能は有効になっていま
す。'-' のときは無効になっています。
機能の有無を変えるには feature.h を編集して、Vim をコ
ンパイルし直す必要があります。Vim script から機能の有
無を確認するには |has()| を使います。以下に、機能の概
要を示します。
行頭の文字はその機能が含まれる最小構成です:
T tiny (常に含まれる)
N normal
H huge
m 手動で組み込むか他の機能に依存
- 削除された機能
(none) システム依存
例えば "N" と書いてあれば、その機能は
normal、huge バージョンの Vim に含まれます。
*+feature-list*
*+acl* |ACL| サポートを含む
*+ARP* Amiga のみ: ARP サポートを含む
H *+arabic* |Arabic|言語サポート
H *+autochdir* |autochdir| オプションをサポート
T *+autocmd* |:autocmd|, 自動コマンド実行。8.0.1564 以降は常に有効
H *+autoservername* 自動的に |clientserver| を有効にする
m *+balloon_eval* GUIでの |balloon-eval| サポート。GUI が有効で、
Netbeans/Sun Workshop (|+sun_workshop|) または |+eval|
が有効な場合に利用できます。
H *+balloon_eval_term* 端末での |balloon-eval|サポート、'balloonevalterm'
N *+browse* |:browse| コマンド
T *++builtin_terms* 全部の組み込み端末 |builtin-terms| 9.0.0280 以降は常に
有効
N *+byte_offset* 'statusline'の'o'フラグ、|go|、|:goto|をサポート
m *+channel* プロセス間通信 |channel|
T *+cindent* |'cindent'|, C言語インデント; 常に有効
N *+clientserver* UnixとWin32: リモート呼び出し |clientserver|
*+clipboard* |clipboard| サポートコンパイル済み
*+clipboard_working* |clipboard| サポートコンパイル済みかつ動作中
T *+cmdline_compl* コマンドライン補完 |cmdline-completion|
T *+cmdline_hist* コマンドライン履歴 |cmdline-history|
T *+cmdline_info* |'showcmd'| と |'ruler'|; 9.0.0657 以降は常に有効
S *+cmdwin* |cmdline-window| サポート
T *+comments* |'comments'| サポート
N *+conceal* "conceal" サポート。|conceal| |:syn-conceal| 他 参照。
N *+cryptv* 暗号化サポート |encryption|
H *+cscope* |cscope| サポート
T *+cursorbind* |'cursorbind'| サポート
m *+cursorshape* |termcap-cursor-shape| サポート
m *+debug* Vim がデバッグ用にコンパイルされた
N *+dialog_gui* |:confirm| のGUIダイアログをサポート
N *+dialog_con* |:confirm| のコンソールダイアログをサポート
N *+dialog_con_gui* |:confirm| GUIとコンソールダイアログをサポート
N *+diff* |vimdiff|と'diff'
N *+digraphs* |digraphs| *E196*
*+directx* Win32 GUI のみ: DirectX と |'renderoptions'|
*+dnd* "~レジスタ |quote_~|を使ったDnDのサポート
H *+emacs_tags* |emacs-tags| ファイル
N *+eval* 式評価 {訳注: Vim script} |eval.txt|
T *+ex_extra* 今は常にオン、かつてVimの拡張Exコマンドのためにあった
N *+extra_search* |'hlsearch'| と |'incsearch'| オプション
- *+farsi* 削除済み; |farsi| 言語
T *+file_in_path* |gf|, |CTRL-W_f| と |<cfile>| 9.0.265 以降は常に有効
N *+find_in_path* include ファイル検索: |[I|、|:isearch|、
|CTRL-W_CTRL-I|、|:checkpath|、その他
N *+folding* |folding|
*+footer* |gui-footer|
*+fork* Unix のみ: |fork| シェルコマンド
*+float* 浮動小数点数サポート
N *+gettext* メッセージの翻訳 |multi-lang|
- *+GUI_Athena* Unix のみ: Athena |GUI|
*+GUI_neXtaw* Unix のみ: neXtaw |GUI|
*+GUI_GTK* Unix のみ: GTK+ |GUI|
*+GUI_Motif* Unix のみ: Motif |GUI|
*+GUI_Photon* QNX のみ: Photon |GUI|
m *+hangul_input* ハングル入力サポート |hangul|
*+iconv* iconv() 関数が組み込まれている
*+iconv/dyn* |iconv-dynamic| |/dyn| と同じ
T *+insert_expand* |insert_expand| 挿入モード補完
m *+ipv6* IPv6 ネットワーク通信サポート |channel|
m *+job* job の開始と停止 |job|
T *+jumplist* |jumplist|; 8.2.3795以降は常に有効
H *+keymap* |'keymap'|
N *+lambda* |lambda| と |closure|
H *+langmap* |'langmap'|
N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|、|'breakat'| と |'showbreak'|
T *+lispindent* |'lisp'|
T *+listcmds* バッファリストや引数リストに対するVimコマンド
|buffer-hidden| |:argdelete|
T *+localmap* バッファローカルなマップのサポート |:map-local|
m *+lua* |Lua| インターフェイス
m *+lua/dyn* |Lua| インターフェイス |/dyn|
N *+menu* |:menu|
N *+mksession* |:mksession|
T *+modify_fname* |filename-modifiers|
T *+mouse* マウス操作 |mouse-using|
N *+mouseshape* |'mouseshape'|
N *+mouse_dec* Unix のみ: Dec端末マウス操作 |dec-mouse|
N *+mouse_gpm* Unix のみ: Linuxコンソールマウス操作 |gpm-mouse|
m *+mouse_gpm/dyn* |+mouse_gpm| と同じだが、ライブラリへの依存がオプショ
ナル |/dyn|
N *+mouse_jsbterm* JSB マウスサポート |jsbterm-mouse|
N *+mouse_netterm* Unix のみ: nettermマウス操作 |netterm-mouse|
N *+mouse_pterm* QNX のみ: ptermマウス操作 |qnx-terminal|
N *+mouse_sysmouse* Unix のみ: *BSD コンソールマウス操作 |sysmouse|
N *+mouse_sgr* Unix のみ: sgrマウス操作 |sgr-mouse|
N *+mouse_urxvt* Unix のみ: urxvtマウス操作 |urxvt-mouse|
N *+mouse_xterm* Unix のみ: xtermマウス操作 |xterm-mouse|
T *+multi_byte* Unicodeサポート、16ビット、32 ビット文字 |multibyte|
*+multi_byte_ime* Win32 IMEサポート
N *+multi_lang* 多言語サポート |multi-lang|
m *+mzscheme* Mzscheme インターフェイス |mzscheme|
m *+mzscheme/dyn* Mzscheme インターフェイス |mzscheme-dynamic| |/dyn|
m *+netbeans_intg* |netbeans|
T *+num64* 64ビットの数値をサポート |Number|
8.2.0271以降は常に有効になっている。実際の数値のサイズ
を確認するにはv:numbersizeを使用すること。
m *+ole* Win32 GUI のみ: |ole-interface|
N *+packages* |packages| の読み込み
T *+path_extra* 'path'や'tags'での上下階の検索 9.0.0270 以降は常に有効
m *+perl* Perl インターフェイス |perl|
m *+perl/dyn* Perl インターフェイス |perl-dynamic| |/dyn|
N *+persistent_undo* 永続 undo |undo-persistence|
N *+popupwin* ポップアップウィンドウ |popup-window|
*+postscript* |:hardcopy| でPostScriptファイルの書き出し
N *+printer* |:hardcopy| コマンド
H *+profile* |:profile| コマンド
m *+python* Python 2 インターフェイス |python|
m *+python/dyn* Python 2 インターフェイス |python-dynamic| |/dyn|
m *+python3* Python 3 インターフェイス |python|
m *+python3/dyn* Python 3 インターフェイス |python-dynamic| |/dyn|
m *+python3/dyn-stable*
Python 3 インターフェイス |python-dynamic|
|python-stable| |/dyn|
N *+quickfix* |:make| と |quickfix| コマンド
N *+reltime* |reltime()| 関数, 'hlsearch'/'incsearch' タイムアウト,
'redrawtime' オプション
H *+rightleft* 右から左へタイプ |'rightleft'|
m *+ruby* Ruby インターフェイス |ruby|
m *+ruby/dyn* Ruby インターフェイス |ruby-dynamic| |/dyn|
T *+scrollbind* |'scrollbind'|
N *+signs* |:sign|
T *+smartindent* |'smartindent'|
H *+sodium* より良い暗号化サポートのために libsodium とコンパイル
されている
H *+sound* |sound_playevent()|, |sound_playfile()| 関数等
N *+spell* スペルチェックサポート |spell|
N *+startuptime* |--startuptime| 引数
N *+statusline* オプション'statusline'、'rulerformat'と、
'titlestring'と'iconstring'の特殊フォーマット
- *+sun_workshop* 削除済み; |workshop|
N *+syntax* 構文強調 |syntax|
*+system()* Unix のみ: |+fork|の反対
T *+tag_binary* タグファイル内の高速(二分探索)検索 |tag-binary-search|
- *+tag_old_static* 削除済み; 静的タグの方法 |tag-old-static|
- *+tag_any_white* 削除済み; タグファイル内の空白を許すためのものだった
m *+tcl* Tcl インターフェイス |tcl|
m *+tcl/dyn* Tcl インターフェイス |tcl-dynamic| |/dyn|
m *+terminal* ターミナルウィンドウのサポート |terminal|
*+terminfo* |terminfo|でtermcapを代替
N *+termresponse* |t_RV| と |v:termresponse| のサポート
N *+termguicolors* xterm互換端末での 24 ビット色のサポート
T *+textobjects* |text-objects| 選択。9.0.0222 以降は常に有効。
N *+textprop* |text-properties|
*+tgetent* 非Unix のみ: 外部termcapを使用可能
N *+timers* |timer_start()| 関数
T *+title* ウィンドウタイトルとアイコン設定 |'title'| |'icon'|;
常に有効
N *+toolbar* |gui-toolbar|
T *+user_commands* ユーザー定義コマンド |user-commands|
8.1.1210 からは常に有効。
H *+vartabs* 可変幅のタブストップ。|'vartabstop'|
T *+vertsplit* ウィンドウの垂直分割 |:vsplit|; 8.0.1118 からは常に
有効。
T *+vim9script* |Vim9| script
N *+viminfo* |'viminfo'|
T *+virtualedit* |'virtualedit'| 8.1.826 からは常に有効
T *+visual* ビジュアルモード |Visual-mode| 7.4.200からは常に有効
T *+visualextra* 拡張ビジュアルモードコマンド |blockwise-operators|
T *+vreplace* |gR| と |gr|
*+vtp* MS-Windows コンソール上での 'termguicolors' のサポート
T *+wildignore* |'wildignore'| 9.0.0278 以降は常に有効
T *+wildmenu* |'wildmenu'| 9.0.0279 以降は常に有効
T *+windows* 複数ウィンドウ; 8.0.1118 からは常に有効
m *+writebackup* |'writebackup'|がデフォルトで有効
m *+xim* Xインプットメソッド |xim|
*+xfontset* Xフォントセットサポート |xfontset|
N *+xattr* 拡張属性サポート付きでコンパイルされている (Linux のみ)
*+xpm* pixmap サポート
m *+xpm_w32* Win32 GUI のみ: pixmap サポート |w32-xpm-support|
*+xsmp* XSMP(X session management)サポート
*+xsmp_interact* 対話型XSMP(X session management)サポート
N *+xterm_clipboard* Unix のみ: xtermクリップボード操作
m *+xterm_save* xtermのスクリーンを保存と復帰 |xterm-screens|
N *+X11* Unix のみ: ウィンドウタイトルを復帰可能 |X11|
*/dyn* *E370* *E448*
機能が動的ライブラリを利用する場合には機能名に"/dyn"
が付加されます。
:ve[rsion] {nr} 現在は無視されます。これはかつて .vimrc の中でバージョ
ン番号をチェックするために使われていました。現在は
":if" コマンドを使ってバージョン依存の振る舞いを記述で
きるので、削除されています。
*:redi* *:redir*
:redi[r][!] > {file} コマンドの出力 (メッセージ) を {file} にリダイレクトし
ます。メッセージは、リダイレクトを終了するまで、ファイ
ルに出力されます。メッセージは画面にも表示されます。
[!] を付けたときは、既存のファイルが上書きされます。
[!] を省略した場合は、すでに {file} が存在していると、
コマンドは失敗します。
":redir" を同時に複数使用することはできません。
":redir" を実行すると、新しいリダイレクトを開始する前
に、すでに実行されている他のリダイレクトは閉じられま
す。
再帰的に実行するには |execute()| を調べてください。
実行中のコマンドやメッセージがスクリーンに表示されない
ようにするには、コマンドを関数の中に書き、その関数を
":silent call Function()" と実行してください。
このコマンドの代わりに、オプション 'verbosefile' を使
うこともできます。":redir" と同時に使うこともできま
す。
:redi[r] >> {file} メッセージを {file} にリダイレクトします。
{file} が既に存在する場合は追記します。
:redi[r] @{a-zA-Z}
:redi[r] @{a-zA-Z}> メッセージをレジスタ {a-z} にリダイレクトします。レジ
スタ名が大文字 {A-Z} の場合は、そのレジスタに追記され
ます。レジスタ名の後ろの ">" は省略可能です。
:redi[r] @{a-z}>> メッセージをレジスタ {a-z} に追記します。
:redi[r] @*>
:redi[r] @+> メッセージをセレクションまたはクリップボードにリダイレ
クトします。互換性のため、レジスタ名の後ろの ">" は省
略できます。|quotestar| と |quoteplus| を参照。
:redi[r] @*>>
:redi[r] @+>> メッセージをクリップボードに追記します。
:redi[r] @"> メッセージを無名レジスタにリダイレクトします。互換性の
ため、レジスタ名の後ろの ">" は省略できます。
:redi[r] @">> メッセージを無名レジスタに追記します。
*E1092*
:redi[r] => {var} メッセージを変数にリダイレクトします。
旧来のスクリプトでは: 変数が存在しない場合は、作成され
ます。変数がすでにある場合は、空文字列で初期化されま
す。リダイレクトを開始した後で変数を変更したり、ロック
したり、変数タイプを変更したりすると、それ以降のコマン
ドがメッセージを出力するときにエラーが起こります。ロー
カルな変数(関数内での l:var あるいはスクリプト内での
s:var)を使用していて、別の `:redir` によって現在のもの
が終了した場合、スコープが異なることで代入が失敗するこ
とがあります。
Vim9 script では: 変数が文字列として宣言されている必要
があります。
リダイレクトが終了するまでは、変数は空のままです。
文字列変数のみ使えます。
コマンド1つの出力を取得するのにはリダイレクトの代わりに
|execute()| 関数を使うことができます。
:redi[r] =>> {var} メッセージを変数に追記します。文字列変数のみ使えます。
*E1185*
:redi[r] END メッセージのリダイレクトを終了します。
*:filt* *:filter*
:filt[er][!] {pattern} {command}
:filt[er][!] /{pattern}/ {command}
コマンドの出力を {pattern} に一致する行に制限します。
例として xml ファイルだけを一覧する場合には以下のよう
にします: >
:filter /\.xml$/ oldfiles
< [!] を付けたときは、コマンドの出力を {pattern} に一致
しない行に制限します。
{pattern} は Vim の検索パターンです。パターンを囲む
"/" は、{pattern} 内に使われない限り、非ID文字
(|'isident'|) で代用できます。パターンを囲む文字を省略
した場合は、パターンにバー文字 {訳注: "|"} を含むこと
はできなくなります。'ignorecase' は使われません。
パターンは出力に部分一致でマッチするので、行全体に
マッチするパターンを指定する必要はありません。一部のコ
マンドだけがフィルタリングをサポートしているので、サ
ポートしているかどうかは実際に試してみてください。フィ
ルタリングをサポートするコマンドの一部:
|:#| - 行全体をフィルタ
|:clist| - ファイル名かモジュール名でフィルタ
|:command| - コマンド名でフィルタ
|:files| - ファイル名でフィルタ
|:highlight| - ハイライトグループでフィルタ
|:history| - 履歴コマンドでフィルタ
|:jumps| - ファイル名でフィルタ
|:let| - 変数名でフィルタ
|:list| - 行全体をフィルタ
|:llist| - ファイル名かモジュール名でフィルタ
|:marks| - 現在のファイル内のテキストか他のファ
イルのファイル名でフィルタ
|:oldfiles| - ファイル名でフィルタ
|:registers| - レジスタの内容でフィルタ
(複数行は動作しない)
|:set| - オプション名でフィルタ
通常のメッセージだけがフィルタリングされ、エラー
メッセージはされません。 {訳注: 常に出力されます}
*:sil* *:silent* *:silent!*
:sil[ent][!] {command} {command} を静かに実行します。メッセージは表示されず、
メッセージ履歴にも残りません。
[!] を付けた場合は、エラーが起きたときでもエラーメッ
セージは表示されず、コマンドやマップは中断されません。
その場合でも |v:errmsg| はセットされます。
[!] を付けない場合は、エラーメッセージは通常どおりに表
示されます。
|:redir| によるリダイレクトは通常どおり機能します。
|:silent| を使うとコマンドの出力をスクリーンに表示する
ことなくリダイレクトすることができます。例: >
:redir >/tmp/foobar
:silent g/Aap/p
:redir END
< ノーマルモードコマンドを静かに実行するには|:normal|コ
マンドを使用します。例えばメッセージを表示することなく
文字列を検索するには: >
:silent exe "normal /path\<CR>"
< ":silent!" は失敗するかもしれないコマンドを実行すると
きには便利ですが、エラーが無視されてしまいます。例: >
:let v:errmsg = ""
:silent! /^begin
:if v:errmsg != ""
: ... パターンは見つかりませんでした
< ":silent" は hit-enter プロンプトも抑制します。外部プ
ログラムを実行したとき、その出力は表示されたままになっ
てしまいます。その場合は|CTRL-L|でスクリーンをきれいに
できます。
":silent menu ..." はコマンドをコマンドラインにエコー
しないメニューを定義できます。しかしメニューに割り当て
たコマンドのメッセージは表示されます。表示しないように
するにはそのコマンド自身に ":silent" を付けてください:
":silent menu .... :silent command"
*:uns* *:unsilent*
:uns[ilent] {command} {command} を静かでなく実行します。|:silent| コマンドが
使用されているときのみ違いがでます。
|:silent| が使われていてもメッセージを表示したいときに
使用します。次の例では、|:silent| を使ってファイル読み
込みに関するメッセージを抑制しつつ、|:unsilent| を使っ
て各ファイルの最初の行を表示できるようにしています: >
:silent argdo unsilent echo expand('%') .. ": " .. getline(1)
<
*:verb* *:verbose*
:[count]verb[ose] {command}
'verbose' に [count] を設定した状態で {command} を実行
します。[count] を省略した場合は1が設定されます。
":0verbose" として 'verbose' をゼロにすることもできま
す。
":silent" と一緒に使用すると、メッセージは生成されます
が、表示はされません。
":silent" と ":verbose" を一緒に使用するとメッセージを
生成して |v:statusmsg| を確認することができます。例: >
:let v:statusmsg = ""
:silent verbose runtime foobar.vim
:if v:statusmsg != ""
: " foobar.vim が見付からない
:endif
< コマンドを連続させた場合は、":verbose"は最初のコマンド
だけに適用されます: >
:4verbose set verbose | set verbose
< verbose=4 ~
verbose=0 ~
メッセージをログファイルに出力するには 'verbosefile'
を使ってください。
*:verbose-cmd*
Vim のオプション、マップ、短縮入力、ユーザー定義関数、ユーザー定義コマンド、ハ
イライトグループ、自動コマンド、を表示するとき、'verbose' がゼロ以外だと、それ
が設定された場所も表示されます。手動で設定したときは "Last set" メッセージは表
示されません。関数、ユーザーコマンド、自動コマンド、を実行中に設定された場合に
は、そのコマンドを定義したスクリプトが表示されます。
{|+eval| が有効な場合のみ利用できます}
*K*
K カーソル位置のキーワードを調べるためのプログラムを実行
します。プログラムの名前はオプション 'keywordprg' (kp)
で設定します (初期設定は "man")。キーワードはアルファ
ベット、数字、'iskeyword' に設定された文字から構成され
ます。
カーソルの下、もしくは右側のキーワード使用されます。次
のコマンドで同じことができます: >
:!{program} {keyword}
< Vim の tools ディレクトリにサンプルプログラムがありま
す。"ref" という簡易スペルチェックプログラムです。
特別なケース:
- 'keywordprg' が ":" で始まるならば、それは Vim の Ex
コマンドとして [count] を伴って実行されます。
- 'keywordprg' が空の場合は、":help" コマンドが使われ
ます。検索しやすくするために 'iskeyword' に文字を追
加すると良いでしょう。
- 'keywordprg' が "man" もしくは ":" で始まる場合
は、"K" の前に入力されたカウントが "man" と
キーワードの間に挿入されます。例えば、"mkdir" に
カーソルがあって、"2K" を実行すると、結果はこのよう
になります: >
!man 2 mkdir
< - 'keywordprg' が "man -s" の場合は、"K" の前に入力さ
れたカウントは "-s" の後に挿入されます。カウントを省
略した場合は、"-s" は除去されます。
*v_K*
{Visual}K "K" と同じですが、キーワードにはビジュアル選択されたテ
キストが使用されます。複数行を選択したときは機能しませ
ん。
[N]gs *gs* *:sl* *:sleep*
:[N]sl[eep] [N][m] [N] 秒間何もしません。[m] を付けると、[N] ミリ秒間ス
リープします。"gs" に指定する数値は常に秒単位です。省
略時は 1 秒間スリープします。 >
:sleep " 1 秒スリープ
:5sleep " 5 秒スリープ
:sleep 100m " 100 ミリ秒スリープ
10gs " 10 秒スリープ
< CTRL-C で割り込むことができます(MS-Windowsでは
CTRL-Break)。"gs" は "goto sleep" の略です。
カーソルが表示可能な位置にある場合は、スリープしている
間、カーソルはテキスト中に表示されます。
キューに入れられたメッセージとタイマー (|+timers|) も
スリープ中に処理されます。
*:sl!* *:sleep!*
:[N]sl[eep]! [N][m] 上記と同じですが、カーソルが非表示となります。
*:xrestore* *:xr*
:xr[estore] [display] X11サーバーへの接続を再初期化します。Xサーバーが再起動
した後に便利です。例えば、screen/tmux内でVimを長時間実
行していて、異なるマシンから接続しているとき。
[display] は $DISPLAY 環境変数の形式にする必要がありま
す (例: "localhost:10.0")
[display] を省略すると、前回このコマンドの実行で使用し
たものと同じ値を使用して、X11サーバーへの接続を再初期
化します。値が指定されていない場合は、Vimの起動時と同
じ環境変数 $DISPLAY の値が使用されます。
{|+clipboard| 機能つきでコンパイルされたときのみ利用可
能}
*g_CTRL-A*
g CTRL-A MEM_PROFILING を define して Vim をコンパイルしたとき
み使えます (通常は使いません)。メモリ使用量の統計を表
示します。Vim をデバッグするときなどに使います。
ビジュアルモード時のインクリメントは |v_g_CTRL-A| を参
照。
==============================================================================
2. less、more の代わりに Vim を使う *less*
less や more ではファイルを構文強調表示できません。代わりに、Vim を使うことが
できます。それには、シェルスクリプト "$VIMRUNTIME/macros/less.sh" を使います。
このシェルスクリプトは Vim script "$VIMRUNTIME/macros/less.vim" を使って、
less のコマンドをシミュレートするためのマップを設定します。less コマンド以外は
通常どおり、Vim のコマンドを使うことができます。
完璧に同じ動作ではありません。例えば、短いファイルを表示する場合でも、Vim はス
クリーンを占有します。しかし、ほとんどの場合は十分に機能します。それにとにか
く、構文強調表示することができます。
"h" キーを押すと使用できるコマンドのショートヘルプが表示されます。
もし less を使っていて異なるオプションを設定したい場合は vimrc に LessInitFunc
を定義します。例: >
func LessInitFunc()
set nocursorcolumn nocursorline
endfunc
<
vim:tw=78:ts=8:noet:ft=help:norl: