[過去ログ] Vim Part28 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
635
(4): 2018/11/12(月)17:51 AAS
.vimファイルで
au[tocmd] [group] {event} {pat} [nested] {cmd}
↑こういう命令を着色するときに[group]が設定されていても{event}を正しく着色してくれるようにしたいのですが
どういうsyntaxを書けばいいか分かりますか。

* syntaxファイルの置き場所や設定の仕方なんかは一通り把握してるつもりです。
636
(1): 2018/11/12(月)18:35 AAS
自決しました
syntax match vimAutoCmdGroup contained "\w\+" skipwhite nextgroup=vimAutoEventList
syntax keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoCmdGroup,vimAutoEventList
highlight def link vimAutoCmdGroup vimVar
637
(1): 2018/11/12(月)19:39 AAS
あ。これではだめです。
[group]を省略したときに{event}が[group]の構文強調になってしまいます。
638
(1): 2018/11/12(月)20:00 AAS
すいません。どなたか
特定のハイライトグループを除いたmatchにマッチさせるsyntaxの書きかた知りませんか。
contains=ALLBUTでも近いことはできるんですがALLが含まれるせいで不正な構文も同じように見做されてしまいます。
ちょうど
syntax match XXX contained "\w\+" nocontains=YYY ...
↑こういう指定ができればいいのですが(\w\+という条件に当て嵌まる構文の内YYYグループに含まれるものは除外みたいな)……
639
(2): 2018/11/12(月)21:43 AAS
>>635-638
任意のグループ名に対応する方法は分からないな
グループ名を明示することで満足している
外部リンク:pastebin.com
640: 2018/11/12(月)22:12 AAS
>>639
おお! ありがとうございます。私の環境ではMyVimrcというグループ名を使っているので
ちょうど希望通りのことができました。感謝します。
641
(1): 2018/11/12(月)23:31 AAS
すいません。635なんですけど もう一つ質問させてください……。
外部リンク[html]:vim-jp.org
で続く行頭に\を用いて改行エスケープができるとあるのですが,
syntax keyword xxxXXX
\ kw1 kw2 kw3
↑こういった指定のときにkw1などがvimSynKeyRegionとしてハイライトされません。
syntax keyword xxxXXX kw1 kw2 kw3
という記法のときはきちんとハイライトされます。
642
(1): 2018/11/12(月)23:36 AAS
"FILE:$VIMRUNTIME/syntax/vim.vim
syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
↑ハイライトされない原因はこのあたりだと思うんですけど 正直僕には手のつけようがない複雑さです……。
643
(2): 2018/11/13(火)01:40 AAS
>>641-642
うん、手のつけようがないので気にしないことにしてた

けど問題の箇所をその行だと特定してくれたのでなんとか出来たみたい

syn region vimSynKeyRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|\n\%(^[ \t]*\\\)\@!" contains=@vimSynKeyGroup
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|\n\%([ \t]*\\\)\@!" contains=@vimSynMtchGroup
syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|\n\%([ \t]*\\\)\@!" contains=@vimSynRegGroup

"oneline" を外し、
"end" の正規表現に含まれる「行末 $」を
「次の行頭に空白(0個以上)とバックスラッシュが存在しない改行 \n\%([ \t]*\\\)\@!」
に差し替え
vimSynKeyRegion のほか vimSynMatchRegion, vimSynRegion も同様に
644: 635 2018/11/13(火)06:16 AAS
>>643
まじで まじで 感謝します。
いや〜やっぱり改行の後もしっかり配色されると気分がいいですねぇ。
お手間取っていただき ありがとうございました!
645: 635 2018/11/13(火)06:21 AAS
>>643
あ,何度もすいません,一つ,言葉足らずみたいだったので補足しておきます。
>>639で「任意のグループ」とおっしゃっていましたが
そうではなくて,
外部リンク[html]:vim-jp.org
↑ここに
> 混乱を避けるため、既存の {event} の名前とは違
> う名前をつけるべきである。これはたいてい意図し
> ない動作を引き起こす。
とあることから,自動コマンドのグループ名はイベント名と被っていないという前提のもと,
「"\w\+"に一致しvimAutoEventキーワードと一致しない」グループを
vimAutoCmdGroupキーワードとして設定したかったのです。
尤もそんな複雑なことをしなくても「MyVimrc」固定で僕の目的は達成できたのですが。
646: 635 2018/11/13(火)10:43 AAS
寒いのでそろそろ服着ますね。ありがとうございました。
647
(1): 2018/11/13(火)11:51 AAS
aa/001.jpg
bbcc/001.jpg
これを
aa/aa001.jpg
bbcc/bbcc001.jpg

こうする方法教えろ下さい
面倒な手順で矩形貼り付けはできるようだけど長さがバラバラの場合はどうすりゃいいの
vidirで一括リネームしようと思って
648
(1): 2018/11/13(火)12:51 AAS
>>647
:%s@^\(.*\)/@&\1@
649: 2018/11/13(火)16:10 AAS
>>648
トン
/前の文字列を/後に貼り付けって意味かな
正規表現で&使ったことないわ
650
(1): 2018/11/16(金)21:39 AAS
例)「今日はいい天気ですね」→「いい天気」

vimで適当な1部分をコピーして、次の行に貼り付けたい場合って
ビジュアルモードにして、「いい天気」の部分を選択して「y」を押して、次の行で「p」を押せばいいのでしょうか?
選択した部分をコピーというコマンドが見つからないです・・・
651: 2018/11/16(金)21:49 AAS
言葉が足りなかった・・・

いつもこの方法でやってるのですが、たまにちゃんとペーストできなかったりするので
この方法で正しいのかなと疑問に思えて質問しました。
652: 2018/11/17(土)09:36 AAS
「いい天気」を選択してからyo<C-r>"
<C-r>"はCtrl+R
<C-r>"の効果については:help i_CTRL-R
653: 2018/11/17(土)10:05 AAS
コピペみすってた。以下に訂正
<C-r>はCtrl+R
654: 2018/11/18(日)21:54 AAS
レジスタの種類なんて意識したことないや
システム側とクリップボードが共有されればそれでいいからな
dの削除がただの切り取りなのが色々と惜しい
655: 2018/11/18(日)23:11 AAS
ヤンクしたのは0レジスタに入るから気にするのはそこだけ
656: 2018/11/19(月)07:53 AAS
>>650
v でビジュアルモードに入って、Y でヤンクすれば行としてヤンクされるよ。Y は大文字な。あとはふつうに p すればいい
657: 2018/11/19(月)20:53 AAS
ちゃんとペーストできないってのは多分切り取りとで別のデータがバッファに入ったものをpで呼び出してるんだろうな
658: 2018/11/21(水)17:36 AAS
複数行を矩形貼り付けする方法教えてくれ
foo1
foo2
事前にヤンクしたこの2行を
aa=_bar
bb=_bar
=と_の間に入れて
aa=foo1_bar
bb=foo2_bar
こうしたい

単にfoo1を貼り付けるなら矩形選択後にC-rと"でできるけどこれ複数行の場合はだめだよね
ついでに違う長さの行を貼り付ける場合にも対応してるといいんだけど
659
(1): 2018/11/21(水)17:50 AAS
え? 普通にできね?
<C-v> →(foo1\nfoo2\nを選択)→ aa=...の=にカーソル → p
660: 2018/11/21(水)18:01 AAS
>>659
小細工なしでできるとか俺の苦労は一体
661: 2018/11/22(木)08:39 AAS
ありがとうございます。
662: 2018/11/22(木)14:35 AAS
vimで、:/hoo とかで検索したら行の先頭に飛びますが、検索した単語の場所に飛ぶ方法ってないです?
663: 2018/11/22(木)14:37 AAS
・・・すません。バカみたいな質問でした。n押せばいいだけですね・・・レスしたすぐ後に気づくアホさ・・・
664
(1): 2018/11/22(木)16:49 AAS
:/hoo
これを知らなかった
直接/を打ってたけどこっちより:/こうした方がいい状況ってどういうとき?
1-
あと 338 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.017s