問題タブ [vim-syntax-highlighting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - ドットで終わる数字に一致するvimパターンはどれですか?
PDP11 / 40アセンブル言語では、ドットで終わる数字は10進数として解釈されます。次のパターンを使用していますが、その表記と一致しません。たとえば、次のようになります8.
。
取り替える\.
とD
パターンは8D
問題なくマッチします。誰かが私の「ドットで終わる」パターンの何が問題になっているのか教えてもらえますか?ありがとう。
vim - vim 正規表現とハイライト構文: 一致を見つけ、その中のサブマッチを無視する
VIM でシンタックス ハイライターを作成しようとしています。別の試合の中でどのように試合をハイライトしますか?
それぞれの一致を見つけるために、2 つのsyn match
行を作成しました。これは、一致が分離されている場合に機能します。
最初の行は、xpath 文字列の場合はピンク、文字列の場合は青です
${..}
。2 行目は xpath 文字列のピンクですが、
${..}
その文字列内に含まれる は無視されます。
行の順序を変更しようとしましたsyn match
が、効果がありません。
あなたのアイデアをいただければ幸いです。
vim - 有効なファイル拡張子のないvimでファイルタイプを検出する
vimでファイルのファイルタイプを判断し、ファイルタイプに基づいて構文の強調表示を設定する方法を探しています。唯一の問題は、ファイルの種類を判断するためにファイル拡張子を使用できないことです。
これが私のシナリオです。私はvimdiff
orgvimdiff
をP4DIFF
ツールとして使用しています。これは、ローカル コピー内のファイルと perforce サーバーからのファイルとの間の変更を表示します。Perforce は、perforce サーバーから /tmp ディレクトリにファイルを取り込み、 を使用しPID
てファイルに名前を付けているようです。次に例を示します。
これは C++ ソース ファイル用でした。
perforce リポジトリで最も頻繁に遭遇するファイルの種類は、C/C++ ソースとヘッダー ファイル、Makefile、python スクリプト、perl スクリプト、ruby スクリプト、および tcl スクリプトです。
の使用を検討しましたが
modeline
、ツリー内のほとんどのソースには、この情報がファイルに埋め込まれていません。この投稿では、魔法のパターンを検索して識別するための可能なアプローチについて言及しています。高い成功率が得られる一貫した魔法のパターンは見つかりませんでした。
Linux ボックスでバイナリを使用して、
file
どのような結果が得られるかを確認してみました。C/C++ ソースを適切に識別しているように見えますが、Makefile や Python スクリプト (ハッシュバンを持たない) でさえ失敗します。
良い点の 1 つは、比較される 2 つのファイルのうち、右側のファイルはローカル コピーからのものであり、拡張子付きの正しいファイル名を持っているため、右側のファイルに対して構文の強調表示が正しく有効になっていることです。
これを利用して、左側に表示されているファイルに同じ構文の強調表示を設定する方法はありますか?
この問題に対する別の解決策も歓迎します。
regex - 区切りリストの最後の要素と一致しますか?
次のように、コロンで区切られたデータがいくつかあります。
最後の要素(この場合は)に一致するように正規表現を使用したいと思いqux
ます。リストの長さは任意であり、1つの要素の長さの場合、コロンはまったくありません。
私はvimのゼロ幅マッチング構造を使用しようとしましたが、私が望むことを実行させることができないようです。
vim - VIM の GoLang 構文の強調表示を追加します。
ここで提供されるリソースと指示を使用して、ubuntu の VIM に Go 言語の構文の強調表示を追加しようとしていますhttp://go-lang.cat-v.org/text-editors/vim/。
Goにはgo.vim
VIMの構文設定を含むファイルが付属しており、上記のページには次の手順が記載されています
$GOROOT/misc/vim/syntax/go.vim を ~/.vim/syntax/ に配置し、以下を ~/.vim/ftdetect/go.vim に配置します。
これは、私が他の場所で見たvim構文をカスタマイズするための手順とほぼ同じです(Ubuntu 12.10のVim 7.3には「ftplugin」ディレクトリがどこにもなく、https://github.com/jnwhiteh/vim-golang/blob /master/readme.txt )
したがって、ディレクトリを作成するときは正しいことをしていると思います:
~/.vim
~/.vim/syntax
~/.vim/ftdetect
追加して上記の指示に従います
go.vim を ~/.vim/syntax/ に移動し、ファイル go.vim を ~/.vim/ftdetect/ に作成します。
ただし、構文の強調表示は発生していないようです。VIM にこれらの新しい設定ファイルを強制的に表示させるために必要なことはありますか?
vim - カーソルラインが行を強調表示しているときに、リスト文字の可視性や色を設定するか、vim で cchar を非表示にします
list listchars=...
set to showNonText
とSpecialKey
characters を使用して、テキスト以外のさまざまな種類の文字を強調表示できることを知っています。一般に、これは簡単で機能します。しかし、それは私を邪魔する視覚的な副作用があります - カーソルラインがオンに設定されているときにカーソルを行の上に「ホバリング」している間listchars
、別の色で強調表示されます。この問題はすでにこのスレッドで言及されており、動作を回避する解決策はないようです。
結果として、私は隠蔽機能を試し始めましたが、結果はまちまちです。set concealcursor=n||v||i||c
隠し文字が表示されるモードを制御できます。隠し文字を常に表示できるようにしたいので、次のように設定します。
その結果、現在のモードに関係なく、常に表示されるすべてのスペースが強調表示されます。しかし、ここでも厄介な副作用があります。ビジュアル モードで行をマークしたり、カーソルラインで行を強調表示したりすると、強調表示領域が隠されている場所で中断されます。文字が見つかります。スクリーンショットをご覧ください:
選択した領域のビジュアル モード:
カーソルライン付きの通常モード:
だからやってみようと思っset concealcursor=ic
た。これにより、ハイライトされた領域が中断されなくなりますが、文字は非表示になります。
では、この投稿の冒頭で言及したスレッドの周りに何らかの解決策がありますか、または使用時にカーソルラインと視覚的な選択領域を中断しないようにする方法はありますset concealcursor=nvic
か?
vim - ネストされた領域を強調表示するVim
私は数か月間 vim を使用していますが、この優れたエディターでの経験を改善しようと努力しています。
私がやろうとしているのは、スパイス ネットリスト (電子的なもの) の構文強調表示ファイルを作成することです。
次のパターンを強調しようとしています。
.SUBCKT or_gate AB OUT
(*or_gate* は、セル
A、B、およびこのセルのOUT BIENG ピンの名前です)
私がやろうとしているのは、3 つの異なる色で強調表示することです。
- 1 つは .SUBCKT 用
- or_gate (セル) 用に 1 つ
- A、B、および OUT (ピン) 用に 1 つ
そこで、.SUBCKT で始まる行を見て、行のさまざまな単語を一致させる方法を見つけようとしました。
syn matchまたはネストされたsyn 領域のさまざまな組み合わせを試しましたが、間違った方法でやっているように感じます。
これが私の試みの1つの例です:
syn region spiceCKT start ="\.SUBCKT" end ="$" contains =spiceCell,spicePins
syn region spiceCell start ="\.SUBCKT"rs=e end ="$" を含む
syn region spicePins start ="\.SUBCKT\s\S*"rs=e end ="$" を含む
パターン (\s\S*) をいじって、rs=e の部分を追加/削除したり、\zs と \ze を追加して開始パターンまたは終了パターンを定義したりしようとしました。
結局、私はそれを機能させることができず、本来あるべきよりも複雑になっているように感じます.
私の間違いと、そのようなパターンの強調表示を処理する方法を理解するのを手伝ってくれる人はいますか?
vim - 2 つの vim 構文の一致を同じ文字に重ね合わせる
vimscript で次の構文規則を定義しています。
そして後で、両方のハイライトを同じキャラクターに適用したいと思います。基本的に、私は次のことを試しました:
しかし、2 番目の一致が最初の一致を置き換えます。syntax match
そのため、 のヘルプとその質問への回答をさらに読み、syn match
パラメーターをいじってみました。
それでもまったく同じように動作します。
では、2 つの構文一致を使用して、同じ文字の背景と前景を個別に変更するにはどうすればよいでしょうか?
vim - ~/.vimrc は filetype.vim の構文強調表示の不適切な推測をどのように無効にできますか?
GLSL シンタックス ハイライターhttp://www.vim.org/scripts/script.php?script_id=1002はうまく機能します。ただし、一般的に#version 330
. (これは Ubuntu 12.04.2 LTS 上にあり、すべて最新です。)
このような行では、ファイルをロードした後set syntax=glsl
、おそらく /usr/share/vim/vim73/filetype.vim が
" Generic configuration file (check this last, it's just guessing!)
if
... getline(1)=~'^#'
... setf conf
.
~/.vimrc によって覆されないのはなぜau BufNewFile,BufRead *.frag,*.vert setf glsl
ですか? filetype.vimで大失敗しない回避策はありますか?