forked from vim-jp/vimdoc-ja-working
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsyntax.jax
6196 lines (4751 loc) · 307 KB
/
syntax.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
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*syntax.txt* For Vim バージョン 9.1. Last change: 2025 Mar 10
VIMリファレンスマニュアル by Bram Moolenaar
構文ハイライト *syntax* *syntax-highlighting* *coloring*
Vimは構文ハイライトによってテキストの一部を別のフォントや色で表示することがで
きる。ハイライトされるテキストは、特定のキーワードや正規表現パターンにマッチす
るテキストである。動作を速く保つため、ファイル全体を構文解析するわけではないか
ら、このハイライト方法には限界が存在する。単語(レキシカル)ハイライトと呼ぶのが
より正しいが、皆が構文ハイライトと呼ぶのでそう呼び続けている。
Vimは全ての端末で構文ハイライトをサポートしている。しかし、多くの普通の端末に
はごく限られたハイライト手段しか提供されていないので、GUI版のgvimで動作させた
ときに見栄えが最もよくなる。
ユーザーマニュアルにおける記述:
|usr_06.txt| 構文ハイライトの紹介。
|usr_44.txt| 構文ファイルの記述方法の紹介。
1. クイックスタート |:syn-qstart|
2. 構文ファイル |:syn-files|
3. 構文ファイル読込の手順 |syntax-loading|
4. HTMLへの変換 |2html.vim|
5. 構文ファイルの覚書 |:syn-file-remarks|
6. 構文を定義する |:syn-define|
7. :syntaxの引数 |:syn-arguments|
8. syntaxのパターン |:syn-pattern|
9. クラスタ |:syn-cluster|
10. 構文ファイルのインクルード |:syn-include|
11. 表示のシンクロナイズ |:syn-sync|
12. 構文アイテムのリストを表示する |:syntax|
13. カラースキーム |color-schemes|
14. ハイライトコマンド |:highlight|
15. グループのリンク |:highlight-link|
16. 構文の消去 |:syn-clear|
17. 関数名などのハイライト |tag-highlight|
18. ウィンドウローカル構文 |:ownsyntax|
19. カラー対応xterm |xterm-color|
20. シンタックスが遅い時には |:syntime|
{Vi にはこれらのコマンドはない}
コンパイル時に|+syntax|機能を無効にした場合には構文ハイライトは利用することは
できない。
==============================================================================
1. クイックスタート *:syn-qstart*
*:syn-enable* *:syntax-enable*
次のコマンドで構文ハイライトが有効になる: >
:syntax enable
このコマンドにより実際には次のコマンドが実行される >
:source $VIMRUNTIME/syntax/syntax.vim
環境変数VIMが設定されていない場合は、Vimは別の方法(|$VIMRUNTIME|参照)でパスの
検索を試みる。通常はこれでうまくいく。うまく動作しない場合は、環境変数VIMにVim
の構成ファイルが置いてあるディレクトリの設定を試みる。例えば、構文ファイルが
ディレクトリ "/usr/vim/vim82/syntax" にあるならば、$VIMRUNTIMEに
"/usr/vim/vim82" を設定する。これはVimを起動する前に、シェルで設定しておかなけ
ればならない。このコマンドは、GUIが実行されている、もしくは間もなく立ち上がる
場合、スクリプト|menu.vim| の読み込みも行う。これを避けるには |'go-M'| を参照。
*:syn-on* *:syntax-on*
コマンド `:syntax enable` は現在の色設定のほとんどを保持する。そのため、このコ
マンドを使用する前後にコマンド `:highlight` で好みの色を設定することができる。
現在の設定を破棄して、デフォルトの色を設定させたい場合は次のコマンドを使用する:
>
:syntax on
<
*:hi-normal* *:highlight-normal*
GUIを使用している場合は、次のコマンドで黒地に白文字を設定できる: >
:highlight Normal guibg=Black guifg=White
カラー端末については|:hi-normal-cterm|を参照。
自分自身で色を設定する方法については|syncolor|を参照。
NOTE: MS-Windowsの構文ファイルは改行コードが<CR><NL>である。UNIXでは<NL>であ
る。自分のシステムに合った改行コードのファイルを使わなければならない。しかし、
MS-Windowsではオプション 'fileformats' が空でなければ正しい形式が自動的に選択
される。
NOTE: 反転表示("gvim -fg white -bg black")を使用する場合、|gvimrc|が読込まれた
後、GUIウィンドウが開かれるまでは 'background' のデフォルト値が設定されない。
そのせいで誤ったデフォルトのハイライトが使用されてしまう。ハイライト表示を有効
化する前に 'background' のデフォルト値を設定するには、|gvimrc|にコマンド
":gui" を含めればよい: >
:gui " ウィンドウを開き、'background' にデフォルト値を設定する
:syntax on " ハイライトを有効化し、'background' にもとづいて色を設定する
NOTE: |.gvimrc|の中で ":gui" を使用すると "gvim -f" によりフォアグラウンドで開
始することができなくなる。その際は ":gui -f" を使用すること。
*g:syntax_on*
次のコマンドで構文ハイライトの有効・無効を切換えることができる: >
:if exists("g:syntax_on") | syntax off | else | syntax enable | endif
これをキーマップに設定するには、以下のように書く: >
:map <F7> :if exists("g:syntax_on") <Bar>
\ syntax off <Bar>
\ else <Bar>
\ syntax enable <Bar>
\ endif <CR>
[全ての文字をそのまま入力すること]
詳細
コマンド ":syntax" はファイルをsourceすることで実装されている。その際にsource
されるファイルの中身を見れば、このコマンドがどのように動作しているのか正確に知
ることができる。
コマンド ファイル ~
:syntax enable $VIMRUNTIME/syntax/syntax.vim
:syntax on $VIMRUNTIME/syntax/syntax.vim
:syntax manual $VIMRUNTIME/syntax/manual.vim
:syntax off $VIMRUNTIME/syntax/nosyntax.vim
|syntax-loading|も参照。
NOTE: 長い行があって表示が遅く、構文ハイライトをオフにしたくなるような場合は、
'synmaxcol' をもっと小さい値にすることも考えてみること。
==============================================================================
2. 構文ハイライトファイル *:syn-files*
ある1つの言語用の構文とハイライト色定義コマンドは通常1つのファイル(以下構文ファ
イル)に格納される。名前は "{name}.vim" と付ける慣習になっている。{name}はその
言語の名前か短縮名となる(DOSファイルシステムで要求される、8.3文字の形式にあわ
せることが望ましい)。
例:
c.vim perl.vim java.vim html.vim
cpp.vim sh.vim csh.vim
構文ファイルには、vimrcファイルと同様にExコマンドを記述できる。しかし1つのファ
イルには、1つの言語のためのコマンドだけを記述するよう取り決めている。ある言語
が別の言語のスーパーセットである時には、他のファイルを内包していても良く、例え
ば、ファイルcpp.vimはファイルc.vimを取り込むようになっている: >
:so $VIMRUNTIME/syntax/c.vim
通常これらの構文ファイルは自動コマンドにより読込まれる。例: >
:au Syntax c source $VIMRUNTIME/syntax/c.vim
:au Syntax cpp source $VIMRUNTIME/syntax/cpp.vim
このようなコマンドはファイル$VIMRUNTIME/syntax/synload.vimに書かれている。
☆独自構文ファイルの作成 *mysyntaxfile*
独自の構文ファイルを作成し、":syntax enable" をしたとき自動的にそのファイルが
使われるようにするには、以下のようにする:
1. ユーザーランタイムディレクトリを作成する。通常はオプション 'runtimepath' に
示される最初のディレクトリを使用する。UNIXの例では: >
mkdir ~/.vim
2. "syntax" という名のディレクトリを作成する。UNIXでは: >
mkdir ~/.vim/syntax
3. Vimの構文ファイルを作成する。もしくはインターネットからダウンロードする。そ
のファイルはディレクトリsyntaxに置く。構文 "mine" の例では: >
:w ~/.vim/syntax/mine.vim
これで独自構文ファイルを手動で使うことはできるようになっている: >
:set syntax=mine
このコマンドを実行するためにVimを再起動する必要はない。
このファイルタイプが認識されるようにするには、|new-filetype|を参照。
システム管理者としてユーザー全てに独自構文ファイルを使わせるには、各ユーザーに
同じ構文ファイルをインストールさせる必要はなく、全ユーザー共通の 'runtimepath'
ディレクトリにインストールすればよい。
☆既存の構文ファイルに設定を追加する *mysyntaxfile-add*
既存の構文ファイルでほぼ満足だが、いくつかの設定を追加したりハイライト手法を変
更したい場合には、以下の手順に従う:
1. 上同様、'runtimepath' に示されるユーザーディレクトリを作成する。
2. "after/syntax" というディレクトリを作成する。UNIXの例: >
mkdir -p ~/.vim/after/syntax
3. 追加設定を行うコマンドを含む Vim script ファイルを作成する。例として、C言語
のコメントの色を変更するには: >
highlight cComment ctermfg=Green guifg=Green
4. その設定ファイルをディレクトリ "after/syntax" に置く。名前には構文名に
".vim" を追加して使用する。Cの構文を拡張するならば: >
:w ~/.vim/after/syntax/c.vim
以上。次回Cのファイルを編集する時にはコメントが異なった色で表示される。Vimを再
起動する必要はない。
構文ファイルが複数になるときは、ファイルタイプの名前のディレクトリに置くとよ
い。そのディレクトリの中の全ての "*.vim" ファイルが読み込まれるようになる。例:
>
~/.vim/after/syntax/c/one.vim
~/.vim/after/syntax/c/two.vim
☆既存の構文ファイルを置き換える *mysyntaxfile-replace*
標準の構文ファイルが気に入らない場合や、新しいバージョンをダウンロードした際に
は、上で述べた|mysyntaxfile|に従えば良い。ただ 'runtimepath' で、前の方に記され
たディレクトリに構文ファイルを置くように気をつければ良い。Vimは適合する構文ファ
イルのうち最初に見つけた1つだけを読込む (それが b:current_syntax を設定すると
想定している)。
☆名前付けの慣習 *group-name* *{group-name}* *E669* *W18*
構文グループとは、同じ種類の構文アイテムをグループ化したものである。構文グルー
プからハイライトグループにリンクされ、ハイライトグループに対して色が設定され
る。構文グループそれ自体は、色や属性を指定するものではない。
ハイライトや構文のグループ名はASCII文字、数字、アンダースコア、ドット、または
ハイフンだけでつけなければならない。正規表現では: "[a-zA-Z0-9_.-]*" しかしそ
れ以外の文字を使ってもVimはエラーを出力しない。グループ名の最大長は約200バイト
である。 *E1249*
各ユーザーが好みの色セットを使用できるように、多くの言語に共通するハイライトグ
ループには優先名が与えられている。推奨されているグループ名は以下のとおり(構文
ハイライトがちゃんと機能していれば、"Ignore" 以外はそのグループに設定された色
で表示されるだろう):
*Comment o コメント
*Constant o 定数
String o 文字列定数: "これは文字列です"
Character o 文字定数: 'c', '\n'
Number o 数値定数: 234, 0xff
Boolean o ブール値の定数: TRUE, false
Float o 浮動小数点数の定数: 2.3e10
*Identifier o 変数名
Function o 関数名(クラスメソッドを含む)
*Statement o 命令文
Conditional o if, then, else, endif, switch, その他
Repeat o for, do, while, その他
Label o case, default, その他
Operator o "sizeof", "+", "*", その他
Keyword o その他のキーワード
Exception o try, catch, throw
*PreProc o 一般的なプリプロセッサー命令
Include o #include プリプロセッサー
Define o #define プリプロセッサー
Macro o Defineと同値
PreCondit o プリプロセッサーの #if, #else, #endif, その他
*Type o int, long, char, その他
StorageClass o static, register, volatile, その他
Structure o struct, union, enum, その他
Typedef o typedef宣言
*Special o 特殊なシンボル
SpecialChar o 特殊な文字定数
Tag o この上で CTRL-] を使うことができる
Delimiter o 注意が必要な文字
SpecialComment o コメント内の特記事項
Debug o デバッグ命令
*Underlined o 目立つ文章, HTMLリンク
*Ignore o (見た目上)空白, 不可視 |hl-Ignore|
*Error o エラーなど、なんらかの誤った構造
*Todo o 特別な注意が必要なもの; 大抵はTODO FIXME XXXなど
のキーワード
*Added o 差分内の追加行
*Changed o 差分内の変更行
*Removed o 差分内の削除行
マーク(*)されている名前が優先グループ、その他はマイナーグループである。優先グ
ループには、"syntax.vim" によりデフォルトのハイライト手法が定義されている。マ
イナーグループは優先グループにリンクされ、リンクした先と同じハイライト手法にな
る。ファイル "syntax.vim" が読込まれた後でコマンド ":highlight" を使えば、その
デフォルトを上書することができる。
ハイライトグループ名には大文字小文字の区別がないことに注意。"String" と
"string" はどちらも同じグループを意味する。
以下の名前は予約されているのでグループ名として使用することはできない:
NONE ALL ALLBUT contains contained
*hl-Ignore*
Ignore グループを使うときは、conceal 機能も使うと便利かもしれない。
|conceal| 参照。
==============================================================================
3. 構文ファイル読込の手順 *syntax-loading*
ここではコマンド ":syntax enable" を実行した時に何が起こるかの詳細を説明する。
Vimは初期化の時に、ランタイムファイルの在り処を自動的に発見する。ここでは変数
|$VIMRUNTIME|にその場所が格納されているとする。
":syntax enable" と ":syntax on" では以下のことが起こる:
$VIMRUNTIME/syntax/syntax.vimを読込む
|
+- $VIMRUNTIME/syntax/nosyntax.vimを読込んで古い構文を削除する
|
+- 'runtimepath' からsyntax/synload.vimを読込む
| |
| +- 構文ハイライトの色を設定する。カラースキームが定義されている場合は
| | ":colors {name}" で再度読込む。そうでない場合は
| | ":runtime! syntax/syncolor.vim" が使用される。":syntax on" は既存
| | の色設定を上書設定し、":syntax enable" はまだ設定されていないグルー
| | プのみを設定する。
| |
| +- 適切な構文ファイルをオプション 'syntax' が設定される時に読込む自動
| | 実行コマンドを設定する。 *synload-1*
| |
| +- ユーザーによる追加ファイルを変数|mysyntaxfile|から読込む。これは
| Vim 5.xとの互換性のためだけに存在する。 *synload-2*
|
+- ":filetype on" を実行し ":runtime! filetype.vim" が実行される。これは
| 見つけることのできる全てのfiletype.vimを読込む。
| $VIMRUNTIME/filetype.vimは常に読込まれ、以下のことが実行される。
| |
| +- 拡張子に基づいてオプション 'filetype' を設定する自動コマンドをイン
| | ストールする。これにより既知のファイル形式に付いて、ファイル名と当
| | 該形式との関連付けが成される。 *synload-3*
| |
| +- ユーザーによる追加ファイルを変数 *myfiletypefile* から読込む。これは
| | Vim 5.xとの互換性のためだけに存在する。 *synload-4*
| |
| +- ファイル形式が検出されなかった時にscripts.vimを読込むための自動実
| | 行コマンドをインストールする。 *synload-5*
| |
| +- 構文メニュー設定のため$VIMRUNTIME/menu.vimを読込む。 |menu.vim|
|
+- ファイル形式が検出された時にオプション 'syntax' を設定するための
| FileType自動コマンドを設定する。 *synload-6*
|
+- 既に読込まれているバッファに対して構文ハイライトを行うために、関連した
自動コマンドを実行する。
ファイルを読込む時には、Vimは以下のように関連した構文ファイルを見つける:
ファイルを読込むとBufReadPost自動コマンドが起動する。
|
+- |synload-3|(既知ファイル形式)か|synload-4|(ユーザー定義ファイル形式)の自
| 動実行コマンドがヒットした場合、オプション 'filetype' にそのファイル形
| 式名が設定される。
|
+- |synload-5|の自動コマンドが実行される。まだファイル形式が決定されてい
| ない場合は、'runtimepath' からscripts.vimが検索される。これは常に以下
| のことを行う$VIMRUNTIME/scripts.vimを読込む。
| |
| +- ユーザーによる追加ファイルを変数 *myscriptsfile* から読込む。これは
| | Vim 5.xとの互換性のためだけに存在する。
| |
| +- 未だにファイル形式が決定できない場合、ファイルの内容を検査する。検
| 査は "getline(1) =~ pattern" のように認識できるファイル形式かどう
| か行われ、認識できるならば 'filetype' を設定する。
|
+- ファイル形式が決定されて 'filetype' が設定された時に、上記|synload-6|
| のFileType自動コマンドが実行される。決定したファイル形式名がそれにより
| 'syntax' へ設定される。
|
+- 上記でオプション 'syntax' が設定されると、|synload-1|(と|synload-2|)の
| 自動実行コマンドが実行される。これにより次のコマンドでメインとなる構文
| ファイルが 'runtimepath' から読込まれる。
| runtime! syntax/<name>.vim
|
+- ユーザーがインストールしたその他のFileTypeおよびSyntax自動コマンドが実
行される。これは特定の構文のハイライトを変更するのに使うことができる。
==============================================================================
4. HTMLへの変換 *2html.vim* *convert-to-HTML*
これは構文ファイルではなくて、現在のウィンドウの内容をHTMLに変換するスクリプト
である。Vimは新しいウィンドウを作成しそこにHTMLファイルを構築する。
変換結果を保存すればブラウザーでそれを表示できる。Vim での表示と同じ色で表示さ
れるはずである。|g:html_line_ids| を有効化すると、ブラウザーのアドレスバーで
URL の末尾に (例えば) #L123 や #123 と付け加えることで、その行にジャンプでき
る。また、|g:html_dynamic_folds| を有効化すると、Vim の折り畳みを表示したり隠
したりできる。
使う際にはオプション 'filetype' や 'syntax' に "2html" を設定してはならない!
現在のファイルをコンバートするためにはこのスクリプトを読込む: >
:runtime! syntax/2html.vim
<
2html.vim に影響する変数はたくさんある。下記参照。下記の on/off オプションは指
定された値を明示的に設定することで有効化/無効化できる。また、|:unlet| で変数を
削除することでデフォルトに戻すことができる。
覚書き:
- いくつかの本当に古いブラウザーでは背景色が表示されないことがある。
- 大半のブラウザーでは(なんとカラーで)印刷することができる!
- このバージョンの TOhtml はおそらく古い Vim でも動作するが、例えば conceal サ
ポートのようないくつかの機能は動作しない。また、GUI サポート無しでコンパイル
された古い Vim では色がおかしくなるかもしれない。
例えば次の Unix シェルスクリプトですべての .c と .h ファイルを変換できる: >
for f in *.[ch]; do gvim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" $f; done
<
*g:html_start_line* *g:html_end_line*
変換の範囲を指定するには、|:TOhtml| コマンドに範囲を指定するか、
"g:html_start_line" と "g:html_end_line" に変換したい範囲の最初と最後の行を設
定する。例えば、最後に選択された範囲だけを変換するには: >
:let g:html_start_line = line("'<")
:let g:html_end_line = line("'>")
:runtime! syntax/2html.vim
<
*:TOhtml*
[range]TOhtml ":TOhtml" コマンドは標準プラグインで定義されている。
このコマンドは |2html.vim| を実行する。範囲が指定され
た場合は |g:html_start_line| と |g:html_end_line| をそ
の範囲に設定する。範囲省略時はファイル全体が対象とな
る。
もしカレントウィンドウが |diff| の一部で、
|g:html_diff_one_file| が設定されていない場合、:TOhtml
はカレントタブ内の diff を表示しているすべてのウィンド
ウを変換して <table> 要素で並べた HTML を生成する。
|g:html_line_ids| が有効なら、(例えば) #W1L42 で 1 番
目のウィンドウの 42 行目、#W3L87 で 3 番目の 87 行目に
ジャンプできる。
例: >
:10,40TOhtml " convert lines 10-40 to html
:'<,'>TOhtml " convert current/last visual selection
:TOhtml " convert entire buffer
<
*g:html_diff_one_file*
デフォルト: 0
0 なら、|:TOhtml| を使うとカレントタブ内の |diff| を表示しているすべてのウィン
ドウが変換され、<table> 要素で並べられた HTML が生成される。
1 なら、カレントバッファのみが変換される。
例: >
let g:html_diff_one_file = 1
<
*g:html_whole_filler*
デフォルト: 0
0 なら、もし |g:html_diff_one_file| が 1 なら、3 行以上の連続した詰め行は 3 行
で表示され、真ん中の行に挿入された行数の合計が表示される。
1 なら、|g:html_diff_one_file| が設定されていないときのように、常に挿入された
行が表示される。
>
:let g:html_whole_filler = 1
<
*TOhtml-performance* *g:html_no_progress*
デフォルト: 0
0 なら、2html.vim の変換過程の各段階で進行状況のプログレスバーをステータスライ
ンに表示する。
1 なら、プログレスバーを表示しない。若干スピードは速くなるが、変換がいつごろ終
わるかを知ることはできない。大きなファイルならとても時間がかかるのに!
例: >
let g:html_no_progress = 1
Vim を非対話で実行すれば、スクリプトでバッファやウィンドウなどを走査するごとに
表示を更新しなくてもよくなるので、速度はもっと速くなる: >
vim -E -s -c "let g:html_no_progress=1" -c "syntax on" -c "set ft=c" -c "runtime syntax/2html.vim" -cwqa myfile.c
<
Note -s フラグは .vimrc とプラグインの読み込みを抑制する。したがって、HTML 変
換に必要な設定などは明示的に読み込まなければならない。詳細は |-E| と |-s-ex|
を参照。このように各コマンドを指定して実行するよりは、上記の -c で設定している
ようなことがらをすべてスクリプトファイルに書き込み、-u フラグで読み込んで実行
するといいだろう。
*hl-TOhtmlProgress* *TOhtml-progress-color*
プログレスバーは HTML 変換が進むにつれ、ステータスラインに沿って色付きの四角で
表示される。デフォルトでは背景色は現在の "DiffDelete" ハイライトグループの設定
が適用される。"DiffDelete" と "StatusLine" の背景色が同じ場合、TOhtml は自動で
色を調整する。自動で色を選択したくない場合は、自身でプログレスバーのハイライト
色を定義することができる。例えば: >
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
<
*g:html_number_lines*
デフォルト: 現在の 'number' の設定
0 なら、バッファのテキストは行番号なしで HTML に表示される。
1 なら、生成される HTML に行番号が付加される。色は Vim の行番号表示と同じ
(|hl-LineNr|)。
'number' がオフでも強制的に行番号を表示するなら: >
:let g:html_number_lines = 1
強制的に行番号を表示しないようにするなら: >
:let g:html_number_lines = 0
'number' の設定に従うように戻すには: >
:unlet g:html_number_lines
<
*g:html_line_ids*
デフォルト: 1。|g:html_number_lines| が設定されていないときは 0。
この設定が 1 なら、各行番号に HTML の id 属性を付ける。行番号が表示されていな
いときは空の <span> 要素を挿入して id を付ける。この ID 属性は、HTML が単一の
バッファから生成されたときは L123 のような形になる。diff 表示から生成されたと
きは W2L123 のような形になる。これを使って (特定の diff ウィンドウの) 特定の行
にジャンプできる。指定された行にジャンプする前にその行の折り畳みを開くための
Javascript が挿入される (|g:html_dynamic_folds|)。javascript はウィンドウ ID
や行番号前の L を省略できる機能も提供する。
例: >
page.html#L123 単一バッファファイルの 123 行目にジャンプ
page.html#123 同上
diff.html#W1L42 diff の 1 番目のウィンドウの 42 行目にジャンプ
diff.html#42 同上
<
*g:html_use_css*
デフォルト: 1
1 なら、CSS で装飾された HTML 5 準拠の HTML が生成される。最新のブラウザーと多
くの古いブラウザーでサポートされている。
0 なら、<font> タグで装飾された時代遅れの HTML が生成される。これは推奨されて
いないが、古いブラウザー、あるいはメーラーや掲示板の投稿など、CSS が使えない場
合には必要だろう。
例: >
:let g:html_use_css = 0
<
*g:html_ignore_conceal*
デフォルト: 0
0 なら、Conceal されたテキストは HTML には表示されず、'conceallevel' の現在の
設定に応じて |:syn-cchar| や 'listchars' の文字が代わりに表示される。
1 なら、Conceal されていてもされていなくても、すべてのテキストが HTML に表示さ
れる。
次のコマンドでバッファ内のすべてのテキストを HTML に表示することができる (折り
畳まれてなければ): >
:let g:html_ignore_conceal = 1
:setl conceallevel=0
<
*g:html_ignore_folding*
デフォルト: 0
0 なら、折り畳みで閉じられたテキストは Vim で折り畳み表示されているテキストに
置き換えられる (|fold-foldtext|)。Vim で折り畳みを開けるのと同じように、HTML
でも開けるようにしたい場合は |g:html_dynamic_folds| を参照。
1 なら、バッファのすべてのテキストを HTML に含める。テキストが折り畳まれている
かどうかは無視される。|g:html_dynamic_folds| は機能しない。
次のコマンドでバッファ内のすべてのテキストを HTML に表示することができる
(Conceal されてなければ): >
zR
:let g:html_ignore_folding = 1
<
*g:html_dynamic_folds*
デフォルト: 0
0 なら、折り畳まれたテキストは HTML に含まれない。
1 なら、Vim の動作と同じように折り畳みを開いたり閉じたりするための、javascript
が生成される。
この変数を 1 に設定すると、|g:html_use_css| の設定にかかわらず、2html.vim は常に
CSS を使うようになる。
この変数は |g:html_ignore_folding| が設定されているときは無視される。
>
:let g:html_dynamic_folds = 1
<
*g:html_no_foldcolumn*
デフォルト: 0
0 なら、もし |g:html_dynamic_folds| が 1 なら、Vim の foldcolumn
(|fold-foldcolumn|) に似たテキストを生成する。ユーザーはそれをクリックすること
で折り畳みを開いたり閉じたりできる。生成されるテキスト幅の最小値は現在の
'foldcolumn' の設定で決まる。
1 なら、その列を生成しない。代わりに、マウスを折り畳みの上にもっていくことで折
り畳みが開くようになる (|g:html_hover_unfold| が設定されたときのように)。
>
:let g:html_no_foldcolumn = 1
<
*TOhtml-uncopyable-text* *g:html_prevent_copy*
デフォルト: 空文字列
このオプションは、例えば生成された HTML をブラウザーで開いて全体を選択してコ
ピーしたときに、特定の範囲がコピーされないようにできる。これは foldcolumn や行
番号が表示されていても、ソーステキストのみコピーできるようにしたい場合に便利で
ある。範囲の指定は次のようにする:
f: foldcolumn
n: 行番号 (折り畳みテキスト内のも)
t: 折り畳みテキスト
d: 差分詰め文字
例えば、foldcolumn と行番号をコピーできないようにするには: >
:let g:html_prevent_copy = "fn"
<
生成されたページのコピーを防ぐための方法は |g:html_use_input_for_pc| の値に依
存している。
*g:html_use_input_for_pc*
デフォルト: "none"
|g:html_prevent_copy| の値が空文字列でないとき:
"all" なら、コピー抑制エリアにある通常テキストの代わりに読み込み専用の <input>
要素を使用する。古いブラウザーなどいくつかのブラウザーでは、ページ全体を選択し
コピーした後、<input> タグはページテキストと共にペーストされない。もし
|g:html_no_invalid| が 0 ならば、<input> タグは不正な属性を持つ。これにより大
抵のブラウザーで機能するようになるが、ページは正しくない。
Note: この方法は最近の Chrome やそれと同等なブラウザーでは動作しない。<input>
タグはテキストと共にペーストされてしまう。
"fallback" (デフォルト値) なら、古いブラウザーのために同様に <input> 要素を生
成するが、コピー抑制テキストを表示するために新しいブラウザー (これはCSS 機能ク
エリで決定される) では <input> 要素を隠し、::before 疑似要素で生成したコンテン
ツを代わりに使用する。この方法は新旧ほとんどのブラウザーで機能する。
"none" なら <input> 要素は生成されない。コンテンツを生成する方法のみが使用され
る。これは Internet Explorer のような古いブラウザーでは、コピーできないように
意図されたテキストがコピーできるか、コピー抑制テキストが全く表示されないことを
意味する。ただし、これが最も標準的な方法でマークアップも少なくなる。
*g:html_no_invalid*
デフォルト: 0
0 なら、もし |g:html_prevent_copy| が空でなく |g:html_use_input_for_pc| も
"none" でない場合、コピー抑制エリアのための <input> エレメントに不正な属性が意
図的に挿入される。これによって、いくつかのアプリケーションで <input> 要素がペー
ストされることを防ぐ。特に、いくつかのバージョンの Microsoft Word では不正な属
性を持つ <input> 要素をペーストしない。1 なら、不正な属性は挿入されない。正し
いページが生成される。ただし、いくつかのアプリケーションでは <input> 要素はペー
ストされてしまい、後で削除するのが困難になる。
*g:html_hover_unfold*
デフォルト: 0
0 なら、2html.vim で |g:html_dynamic_folds| 付きで生成された HTML の折り畳みを
開く方法は、生成された折り畳み列をクリックする方法だけになる。
1 なら、CSS 2.0 を使って、マウスを折り畳みの上にもっていくことで折り畳みを開け
るようにする。javascript を無効にしていても折り畳みを開けるようにしたい場合に
便利である。
Note 古いブラウザー (特に Internet Explorer 6) はこの機能をサポートしていない。
通常の CSS1 を使った IE6 用のマークアップが挿入され、IE6 でも表示できるように
はなっているが、foldcolumn がないとそれを開くことはできない。
>
:let g:html_hover_unfold = 1
<
*g:html_id_expr*
デフォルト: ""
動的折り畳みや行 ID によるジャンプが機能するにはドキュメント内における一意の
ID が必要である。例えば生成された HTML を他のドキュメント内にコピーしたりする
と、その ID は一意性が保証されなくなる。g:html_id_expr に式が設定されている
と、Vim は一意な文字列を得るためにその式を評価して、ドキュメント内で使用される
ID に付加する。その完全な ID であれば、他のドキュメントにコピーされた場合でも
一意に定めることができる。例えば、 _ とバッファ番号を ID に付加するには: >
:let g:html_id_expr = '"_" .. bufnr("%")'
<
ID の末尾に "_mystring" を付加するには: >
:let g:html_id_expr = '"_mystring"'
<
Note: diff ビューを HTML に変換するときは、この式は diff の 1 番目のウィンドウ
に対してのみ評価される。そしてその結果は他のすべてのウィンドウに対して使用され
る。
*TOhtml-wrap-text* *g:html_pre_wrap*
デフォルト: 現在の 'wrap' の設定
0 なら、もし |g:html_no_pre| が 0 または未設定なら、生成された HTML のテキスト
はブラウザーの端で折り返されない。
1 なら、もし |g:html_use_css| が 1 なら、CSS 2.0 の "white-space:pre-wrap" が
使われ、テキストはブラウザーの端で折り返される。
明示的に折り返しを有効にするには: >
:let g:html_pre_wrap = 1
明示的に折り返しを無効にするには: >
:let g:html_pre_wrap = 0
デフォルトに戻し、'wrap' の設定が反映されるようにするには: >
:unlet g:html_pre_wrap
<
*g:html_no_pre*
デフォルト: 0
0 なら、テキストは <pre>...</pre> タグで囲まれる。スペース文字の連続はそのまま
Vim 内での表示と同じように表示され、タブ文字もそのまま含むことができる
(|g:html_expand_tabs| 参照)。
1 なら (非推奨)、<pre> タグは使われず、代わりに <div> タグが使われる。スペース
文字は 文字参照に変換され、改行には <br> が使われる。これは HTML で折り
返し (|g:html_pre_wrap|) をするためのもう一つの方法で、古いブラウザーでも動作
するが、Vim の表示とは違うページが生成されるかもしれない。
>
:let g:html_no_pre = 1
<
*g:html_no_doc*
デフォルト: 0
1 の場合、DOCTYPE, <head>, <body> などを含む完全な HTML ドキュメントは生成され
ない。|g:html_use_css| が有効になっている場合 (デフォルト)、CSS を手動で定義す
る必要がある。|g:html_dynamic_folds| および |g:html_line_ids| 設定 (デフォルト
ではオフ) も、いくつかの JavaScript を挿入する。
*g:html_no_links*
デフォルト: 0
URL のようなテキストには <a> タグを生成しない。
*g:html_no_modeline*
デフォルト: 0
折り畳みを無効化するモードラインを生成しない。
*g:html_expand_tabs*
デフォルト: 'tabstop' が 8 で 'expandtab' が 0 で 'vartabstop' が使われていな
い、かつ、foldcolumn と行番号がない場合は 0。そうでない場合は 1。
1 なら、<Tab> 文字は同等のスペース文字、または (|g:html_no_pre| が 1 の
場合) に置換される。
0 なら、もし |g:html_no_pre| が 0 または未設定なら、<Tab> 文字はそのまま HTML
に出力される。これはブラウザーで表示したときに、もとのテキストのままコピー &
ペーストできるようにしたい場合に便利である。Note これはテキストの整列やインデ
ントが崩れやすい (デフォルトとして設定された場合は別)。
強制的に <Tab> 文字を維持したい場合は: >
:let g:html_expand_tabs = 0
<
強制的にタブ文字を展開したい場合は: >
:let g:html_expand_tabs = 1
<
*TOhtml-encoding-detect* *TOhtml-encoding*
ウェブサーバーにコンテンツを置くような場合は、使用したいエンコーディング名を
|g:html_use_encoding| で指定することを強く推奨する。
エンコーディングが指定されていない場合は、'fileencoding' が設定されていれば
'fileencoding' の値から、設定されていなければ 'encoding' の値から、適切な IANA
名が使用される。特定の 'buftype' に対しては 'encoding' が常に使用される。
'fileencoding' は選択されたドキュメントエンコーディングに合うように設定され
る。
自動設定は |encoding-names| に挙げられたエンコーディング名に対して機能するが、
TOhtml は多くのブラウザーでサポートされているエンコーディングのみ自動設定する。
自動設定の対象外のエンコーディングを使用したい場合は明示的にそれを設定すること
ができる (下記オプション参照)。IANA 名については
http://www.iana.org/assignments/character-sets を参照。
Note: デフォルトではすべての Unicode エンコーディングは BOM なし UTF-8 として
HTML 生成される (W3C 推奨):
http://www.w3.org/International/questions/qa-choosing-encodings
http://www.w3.org/International/questions/qa-byte-order-mark
*g:html_use_encoding*
デフォルト: なし。上述のとおり、'fileencoding' の値に応じて IANA 名が使われる。
文字セットの自動設定を上書きするには、g:html_use_encoding に使用したい文字セッ
トの名前を設定する。ウェブサーバーに上げるような場合には、UTF-8 のような広くサ
ポートされている文字セットを設定することが推奨される: >
:let g:html_use_encoding = "UTF-8"
文字セット指定の行を含めたくない場合は g:html_use_encoding に空文字を設定する
(非推奨): >
:let g:html_use_encoding = ""
自動的に判断する設定に戻すには変数 |g:html_use_encoding| を削除する: >
:unlet g:html_use_encoding
<
*g:html_encoding_override*
デフォルト: なし。|encoding-names| で挙げられているエンコーディングに対しては
autoload/tohtml.vim で既定の変換が定義されている。
自動設定されない文字セットを |g:html_use_encoding| で明示的に設定したときに、
それに対応する 'fileencoding' を指定することができる。
これは文字セット-エンコーディング組の辞書で、TOhtml が使用する組を置き換えたり
追加したりできる。
例えば HTML 文字セットの "windows-1252" を "8bit-cp1252" エンコーディングに対
応させるなら: >
:let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
*g:html_charset_override*
デフォルト: なし。|encoding-names| で挙げられているエンコーディングに対しては
autoload/tohtml.vim で既定の変換が定義されている。それは多くのブラウザーでサ
ポートされている。
|2html.vim| が 'fileencoding' や 'encoding' から適切な HTML 文字セットを自動的
に決定できない場合に設定する。既定のエンコーディング-文字セット組を上書きする
こともできる。例えば、TOhtml はすべての Unicode/UCS エンコーディングに対しては
UTF-8 を使用するが、代わりに UTF-16 や UTF-32 を使うようにするには次のように設
定する: >
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
Note: UTF-32 か UTF-16 でエンコードされたドキュメントはいくつかのメジャーブラ
ウザーで互換性の問題があることが知られている。
*g:html_font*
デフォルト: "monospace"
g:html_font を使って1つないしは複数のフォントを変換されたドキュメントに対して
指定できる。このオプションに文字列を設定した場合はシングルクォートで囲まれる。
またオプションにリストを設定した場合は全てのリストアイテムがシングルクォートで
囲まれ、リストはコンマで結合される。どちらの場合でも、一般的なフォントファミリ
名、(CSSを使っての)フォントファミリ名、(CSSを使わない場合の)フォントフェイス名
を補う為に "monospace" が追加される。
例: >
" font-family: 'Consolas', monospace;
:let g:html_font = "Consolas"
" font-family: 'DejaVu Sans Mono', 'Consolas', monospace;
:let g:html_font = ["DejaVu Sans Mono", "Consolas"]
<
*convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml*
デフォルト: 0
0 なら、標準 HTML 4.01 を生成する (可能なら strict)。
1 なら、XHTML 1.0 を生成する (XML 準拠の HTML)。
>
:let g:html_use_xhtml = 1
<
==============================================================================
5. 構文ファイルの覚書 *:syn-file-remarks*
*b:current_syntax-variable*
Vimは読み込んだ構文の名前を変数 "b:current_syntax" に記憶している。ある構文が
有効な場合だけある設定を行うにはこの変数が利用できる。例: >
:au BufReadPost * if b:current_syntax == "csh"
:au BufReadPost * do-some-things
:au BufReadPost * endif
ABEL *abel.vim* *ft-abel-syntax*
ABELのハイライトにはユーザーが定義できるオプションが幾つかある。それらを有効化
するにはそれぞれの変数に何か値を設定すれば良い。例: >
:let abel_obsolete_ok=1
無効化するには ":unlet" を使用する。例: >
:unlet abel_obsolete_ok
変数 ハイライト ~
abel_obsolete_ok 古いキーワードをエラーでなく命令文として扱う
abel_cpp_comments_illegal '//' をインラインコメントリーダーとして扱わない
ADA
|ft-ada-syntax|を参照。
ANT *ant.vim* *ft-ant-syntax*
ANTの構文ファイルにはデフォルトでJavaScriptとPythonの構文ハイライトが含まれて
いる。関数AntSyntaxScript()の第1引数にタグ名を、第2引数にファイル名を指定する
ことでその他のスクリプト言語用構文ハイライトをインストールすることができる。
例: >
:call AntSyntaxScript('perl', 'perl.vim')
これは次のようなANTのコードにPerlの構文ハイライトをインストールするものである >
<script language = 'perl'><![CDATA[
# everything inside is highlighted as perl
]]></script>
スクリプト言語を永続的にインストールするには|mysyntaxfile-add|を参照。
APACHE *apache.vim* *ft-apache-syntax*
Apache の構文ファイルは Apache HTTP サーバーのバージョン 2.2.3 に基づいた構文
ハイライトを提供する。
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
*ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
*ft-masm-syntax* *ft-asm68k-syntax* *fasm.vim*
☆アセンブリ言語
"*.i" にマッチするファイルのタイプは Progress かアセンブリである。自動判別がう
まく機能しない場合、または Progress ファイルを一切編集しない場合は、vimrcでこ
れを使用する: >
:let filetype_i = "asm"
"asm" には使用するアセンブリ言語の種類を指定する。
同じ拡張子を使用しているアセンブリ言語はたくさんある。そのため、ユーザーは自分
が使っている種類を選択するか、もしくはアセンブリファイルそのものに Vim がそれ
と判断できるような行を追加しなければならない。現在は以下の構文ファイルが含まれ
ている:
asm GNU アセンブラ (通常は .s または .S 拡張子を持ち、GCC
や CLANG などの C コンパイラを使用してすでにビルドされ
ている)
asm68k モトローラ 680x0 アセンブラ
asmh8300 日立 H-8300 用 GNU アセンブラ
ia64 インテル Itanium 64
fasm Flat アセンブラ (http://flatassembler.net)
masm マイクロソフトアセンブラ (.masm ファイルは Microsoft の
マクロアセンブラでコンパイルされる。これは x86, x86_64,
ARM, AARCH64 CPU ファミリでのみサポートされる)
nasm ネットワイドアセンブラ
tasm ターボアセンブラ (80x86, Pentium, MMX の命令コードを含
む)
pic PIC アセンブラ (現在は PIC16F84 用)
アセンブリファイルに次のような行を書き加えるのが一番柔軟である: >
asmsyntax=nasm
ここで、"nasm" は実際に使用するアセンブリ構文の名前に置き換えること。この記
述はファイルの先頭 5 行以内に書いてなければならない。この文字列の前後に非空
白文字があってはならない。Note asmsyntax=foo を指定するのはモードライン
(|modeline|) で ft=foo と設定するのと同じであり、設定がぶつかったときはモード
ラインの設定が先に処理される (特に、例えばモードラインで ft=asm と設定すると、
asmsyntax があっても GNU 構文強調表示が使われることになる)。
構文の種類はバッファ変数b:asmsyntaxを設定することで常にそちらが優先される: >
:let b:asmsyntax = "nasm"
自動にしろ手動にしろb:asmsyntaxが設定されていないときには、グローバル変数
asmsyntaxが使用される。これによりデフォルトのアセンブリ言語を設定することがで
きる: >
:let asmsyntax = "nasm"
最後の手段として、何も設定されていない場合には、"asm" 構文が使用される。
ネットワイドアセンブラ(nasm.vim)の補助ハイライト ~
機能を有効化するには: >
:let {variable}=1|set syntax=nasm
無効化するには: >
:unlet {variable} |set syntax=nasm
変数 ハイライト内容 ~
nasm_loose_syntax 非オフィシャルな拡張構文をエラーとしない
(パーサー依存; 非推奨)
nasm_ctx_outside_macro マクロ外のコンテキストをエラーとしない
nasm_no_warn 潜在的に危険な構文をToDoとしてハイライトしない
ASTRO *astro.vim* *ft-astro-syntax*
コンフィグレーション
以下の変数は、特定の構文ハイライト機能を制御する。
これらを .vimrc に追加できる。
".astro" ファイルで TypeScript と TSX を有効にするには (デフォルト "disable"):
>
let g:astro_typescript = "enable"
<
".astro" ファイルでスタイラスを有効にするには (デフォルト "disable"): >
let g:astro_stylus = "enable"
<
NOTE: astro ファイルでスタイラスをサポートするには、外部プラグインをインストー
ルする必要がある。
ASPPERL *ft-aspperl-syntax*
ASPVBS *ft-aspvbs-syntax*
*.aspと*.asaという名のファイルはどちらもPerlもしくはVisual Basicのスクリプトた
りえる。Vimにとってこれを判別するのは難しいので、グローバル変数を設定すること
でどちらを使用するのか宣言することができる。どちらでもPerlスクリプトを使用する
なら: >
:let g:filetype_asa = "aspperl"
:let g:filetype_asp = "aspperl"
Visual Basicを使用するなら次のように設定する: >
:let g:filetype_asa = "aspvbs"
:let g:filetype_asp = "aspvbs"
ASYMPTOTE *asy.vim* *ft-asy-syntax*
デフォルトでは、基本的な Asymptote キーワードのみがハイライトされる。拡張ジ
オメトリキーワードをハイライトするには: >
:let g:asy_syn_plain = 1
そして、3D 構造に関連するキーワードをハイライトするには: >
:let g:asy_syn_three = 1
デフォルトでは、Asymptote で定義された色 (例: lightblue) がハイライトされる。
TeX で定義された色 (例: BlueViolet) をハイライトするには: >
:let g:asy_syn_texcolors = 1
または、Xorg カラー (例: AliceBlue): >
:let g:asy_syn_x11colors = 1
BAAN *baan.vim* *baan-syntax*
baan.vim は リリース BaanIV から SSA ERP LN まで、3 GL と 4 GL プログラミング
両方に対応した構文を定義している。たくさんの標準的な定義/定数がサポートされて
いる。
次を |.vimrc| に書いておくと、ある種のコーディング標準違反を教えてくれる: >
let baan_code_stds=1
*baan-folding*
以下の変数によって、様々なレベルで構文折り畳みを有効にできる (これらはユーザー
の |.vimrc| で設定すること)。ソースブロックと SQL についてより複雑な折り畳みを
行うと CPU に負荷がかかる。
折り畳みを有効にし、関数レベルで折り畳みをするにはこうする: >
let baan_fold=1
次の設定を行うと、if, while, for ... のようなソースブロックレベルの折り畳みが
有効になる。キーワード begin/end の前のインデントが等しくなければならない (ス
ペースとタブは異なるとみなされる)。 >
let baan_fold_block=1
次を設定すると SELECT, SELECTDO, SELECTEMPTY ... のような埋め込み SQL ブロック
の折り畳みが有効になる。キーワード begin/end の前のインデントが等しくなければ
ならない (スペースとタブは異なるとみなされる)。 >
let baan_fold_sql=1
Note: ブロック折り畳みを有効にすると、小さな折り畳みがたくさんできるかもしれな
い。|.vimrc| でオプション 'foldminlines' と 'foldnestmax' を |:set| するか、
.../after/syntax/baan.vim 内で |:setlocal| をする (|after-directory| を参照)
とよいかもしれない。例: >
set foldminlines=5
set foldnestmax=6
BASIC *basic.vim* *vb.vim* *ft-basic-syntax* *ft-vb-syntax*
Visual Basicも「通常の」BASICも、どちらも拡張子には ".bas" が使用される。どち
らが使用されているか判別するのに、Vimはファイルの先頭5行以内に "VB_Name" とい