Vim Part28
■ このスレッドは過去ログ倉庫に格納されています
.vimファイルで
au[tocmd] [group] {event} {pat} [nested] {cmd}
↑こういう命令を着色するときに[group]が設定されていても{event}を正しく着色してくれるようにしたいのですが
どういうsyntaxを書けばいいか分かりますか。
* syntaxファイルの置き場所や設定の仕方なんかは一通り把握してるつもりです。 自決しました
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 あ。これではだめです。
[group]を省略したときに{event}が[group]の構文強調になってしまいます。 すいません。どなたか
特定のハイライトグループを除いたmatchにマッチさせるsyntaxの書きかた知りませんか。
contains=ALLBUTでも近いことはできるんですがALLが含まれるせいで不正な構文も同じように見做されてしまいます。
ちょうど
syntax match XXX contained "\w\+" nocontains=YYY ...
↑こういう指定ができればいいのですが(\w\+という条件に当て嵌まる構文の内YYYグループに含まれるものは除外みたいな)…… >>635-638
任意のグループ名に対応する方法は分からないな
グループ名を明示することで満足している
https://pastebin.com/Sa4y6LGx >>639
おお! ありがとうございます。私の環境ではMyVimrcというグループ名を使っているので
ちょうど希望通りのことができました。感謝します。 すいません。635なんですけど もう一つ質問させてください……。
https://vim-jp.org/vimdoc-en/repeat.html#line-continuation
で続く行頭に\を用いて改行エスケープができるとあるのですが,
syntax keyword xxxXXX
\ kw1 kw2 kw3
↑こういった指定のときにkw1などがvimSynKeyRegionとしてハイライトされません。
syntax keyword xxxXXX kw1 kw2 kw3
という記法のときはきちんとハイライトされます。 "FILE:$VIMRUNTIME/syntax/vim.vim
syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
↑ハイライトされない原因はこのあたりだと思うんですけど 正直僕には手のつけようがない複雑さです……。 >>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 も同様に >>643
まじで まじで 感謝します。
いや〜やっぱり改行の後もしっかり配色されると気分がいいですねぇ。
お手間取っていただき ありがとうございました! >>643
あ,何度もすいません,一つ,言葉足らずみたいだったので補足しておきます。
>>639で「任意のグループ」とおっしゃっていましたが
そうではなくて,
https://vim-jp.org/vimdoc-ja/autocmd.html#:augroup
↑ここに
> 混乱を避けるため、既存の {event} の名前とは違
> う名前をつけるべきである。これはたいてい意図し
> ない動作を引き起こす。
とあることから,自動コマンドのグループ名はイベント名と被っていないという前提のもと,
「"\w\+"に一致しvimAutoEventキーワードと一致しない」グループを
vimAutoCmdGroupキーワードとして設定したかったのです。
尤もそんな複雑なことをしなくても「MyVimrc」固定で僕の目的は達成できたのですが。 寒いのでそろそろ服着ますね。ありがとうございました。 aa/001.jpg
bbcc/001.jpg
これを
aa/aa001.jpg
bbcc/bbcc001.jpg
こうする方法教えろ下さい
面倒な手順で矩形貼り付けはできるようだけど長さがバラバラの場合はどうすりゃいいの
vidirで一括リネームしようと思って >>648
トン
/前の文字列を/後に貼り付けって意味かな
正規表現で&使ったことないわ 例)「今日はいい天気ですね」→「いい天気」
vimで適当な1部分をコピーして、次の行に貼り付けたい場合って
ビジュアルモードにして、「いい天気」の部分を選択して「y」を押して、次の行で「p」を押せばいいのでしょうか?
選択した部分をコピーというコマンドが見つからないです・・・ 言葉が足りなかった・・・
いつもこの方法でやってるのですが、たまにちゃんとペーストできなかったりするので
この方法で正しいのかなと疑問に思えて質問しました。 「いい天気」を選択してからyo<C-r>"
<C-r>"はCtrl+R
<C-r>"の効果については:help i_CTRL-R コピペみすってた。以下に訂正
<C-r>はCtrl+R レジスタの種類なんて意識したことないや
システム側とクリップボードが共有されればそれでいいからな
dの削除がただの切り取りなのが色々と惜しい ヤンクしたのは0レジスタに入るから気にするのはそこだけ >>650
v でビジュアルモードに入って、Y でヤンクすれば行としてヤンクされるよ。Y は大文字な。あとはふつうに p すればいい ちゃんとペーストできないってのは多分切り取りとで別のデータがバッファに入ったものをpで呼び出してるんだろうな 複数行を矩形貼り付けする方法教えてくれ
foo1
foo2
事前にヤンクしたこの2行を
aa=_bar
bb=_bar
=と_の間に入れて
aa=foo1_bar
bb=foo2_bar
こうしたい
単にfoo1を貼り付けるなら矩形選択後にC-rと"でできるけどこれ複数行の場合はだめだよね
ついでに違う長さの行を貼り付ける場合にも対応してるといいんだけど え? 普通にできね?
<C-v> →(foo1\nfoo2\nを選択)→ aa=...の=にカーソル → p vimで、:/hoo とかで検索したら行の先頭に飛びますが、検索した単語の場所に飛ぶ方法ってないです? ・・・すません。バカみたいな質問でした。n押せばいいだけですね・・・レスしたすぐ後に気づくアホさ・・・ :/hoo
これを知らなかった
直接/を打ってたけどこっちより:/こうした方がいい状況ってどういうとき? >>664
テキストの先頭から検索したい時
:1/hooってやりますね ちなみに最近のVimだと/fooを入力してる最中にも<C-t>で次の一致に飛べる iVim結構いいと思うんだけど使ってる人いるかな? foo1
foo2
aa=_bar
bb=_bar
これってfooを行頭に貼ろうとaでpしたら
afoo1a=_bar
bfoo2b=_bar
1文字ずれてこうならない? そういうときは取り敢えずキャピタルを試すのがvimの基本。 vimの移動キーに全然慣れない。なんでj=左,k=下,i=上,l=右にしてくれなかったのか・・・ 確かにASDFじゃなくてHJKL採用なのも気になる
Jを下矢印だと考えたらやっと慣れてきたが 矢印キーで移動できるのになぜわざわざhjklで移動しようとする?
特に挿入モードでは矢印キーでしかできないのに 挿入モードで矢印キー押してカーソル動かすより一旦ノーマルモードに戻ってhjklなりで動かす方が速いだろ >>678
俺はvi以外でもhjkl使ってるよ
慣れないとか言ってる人が何故文句言ってまで無理して使おうとしてるのかと書いただけ vimなんか絶対操作覚えきれねえと思ってたけど、使ってみると3日くらいで簡単になれるもんだよな。操作速度はともかく。
秀丸使っててもEscとか;を無意識に押してしまうw hjkl(左/下/上/右)
行数+hjkl(3jで下三行)
HLM(カーソル上/下/中)
PageUp/PageDown(一画面上/下)
矢印キー上下左右
結局一般的なバインドの後者2つが最も安定するわ
一気に移動する時は100jみたいにやるが ページ送りはCtrl+fb(半ページならud)の方が楽
自分は、Ctrl+fbで適当にページ送り→HMLでページ内ざっくり移動→hjklやwbなどで微調整、という感じ ワイは修正が頻繁に必要な行は覚えてるから、セミコロンで直接移動してる。そのあとwで移動かな。 そこらへんは片手だけで操作するか両手を常に固定して使うかで分かれるんだよね
ctrl+fbとか同時押しかつ両手とか片手操作からするとありえない割り当てだし capslockをctrlにしていればctrl+fbは左手で無理なく押せるし慣れればかなりスムーズ 移動方法だけでこんなにあるとかさすが貫禄のvimだな
Ctrl+fとかさすがに知らんわ
単語一文字だとwでそのまま次の行なのも盲点というか
wとbはそれこそCtrl+←→でいいが 矢印キーやら使うならvimを使う意味無いような、っていつも思うんだが、
この手の意見ってちょくちょく目にするんだよなあ。
動作の軽快さと多機能さに価値を見出してるんだろうか。
人の好みにケチつける気は無いし、ただの独り言だけど。 移動以外ほぼ素で使ってる
Insでジャンプ
C-h ^Esci
C-l $Esca
Spj %Esci
ノーマルはEsc抜きで似たようなの
ノーマル回帰
jj Esc 以下同
ただしllだけはallとか頻出語があるんでノーマップ
窓移動
S-h S-wh 以下同
InsはEscしてから
こんなもんで十分だろ いや窓移動のデフォはC-w押してから大文字HJKLとかクレイジーなのだっけな?
窓の伸縮もそこから+-とかだったかな
これは矢印キーにマップしてる >>699
正規表現置換やら簡易補完やらのレベルで多機能、って次元の話。 いや困ってる事一つあったわ
Fortranのシンタックスハイライトをカラム揃え記述と自由記述に合わせて自動で切り替えてくれない
保存して開き直すと判別してくれるからインデント見てるんだと思う
拡張子(.for .f .f90 etc)は記述スタイルと関係ないのでfiletype使うのは無理と思う
助けて 加速器物理屋さんのお出ましか。
:h fortran に解説があるが、それで解決しないならわからん。 vscodeやatomみたいなデフォルト状態で高機能なエディタが出てきたから、vimは相対的に高機能とは言えなくなったかな
色々プラグインを入れれば便利になるけど、それを維持するのが面倒くさくなってくる(´・ω・`) 矢印キーがないキーボードを使う状況を想定して常にhjklでやれって言う奴ならいた
nvi使ってる訳でもないしあいつ何と戦ってたのかなぁって
POSIX原理主義みたいなのは勘弁して欲しい 逆にvim使っててhjklでなくて矢印キー使う意味が分からない
単純にhjklの方が楽なのに >>702
すんません出先だったもんで
普通にg:fortran_free/fixed_source変数弄ったらできた
Fnキーでトグルしよう
VIMには最近VSCodeから乗り換えた
理由は公式のエクステンションが無い、野良は一つあったけどゴミgcc準拠の上まともに動かない
昔はFORCEってマルチプラットホームのIDEがあったけど、開発停止して久しい INTELはVisualFortranとか言ってVSバインディング出してるけどVSは買わなきゃだからなあ… >>705
自分はカーソルキーでやってる
Vimだと、「えーと下だからhかないや違うかな」というワンクッションが入って効率が落ちる
ではなぜVimを使うかというと、一般人にはわけのわからない代物なので
難しい仕事をしているふりができるから >>706
確かにモダンなエディタはfortranなんかサポートしてないか。
なるほどですねえ。 文法がフリーダム過ぎるのも敬遠される一因な気がする
どこにスペース入れても構わない、コンパイラはちゃんと読んでくれるのだから、正規表現マスターなら出来るとは思うけど
予約語もPRINTでも p Ri N Tでもオッケー hjklって日本語有効状態だと面倒じゃね
alt押せばできるけどこれ使うのundoくらいだ
メタキーは頻繁に使うもんじゃないしな Vimはねー、タッチタイピングできる人のエディタなの
タッチタイピングできるならhjklは超便利なの >>700
だから、それはテキストエディタとして普通の機能だ >>713
自分はタッチタイピングだけどカーソルキーを使う
ちょっと右手をずらすだけでできるし、いちいちノーマルモードに切り替えないと
カーソルを動かせないというVimの大きな欠点を回避できる ctrl-oして1回だけノーマルコマンド使えばいいだけやないの(´・ω・`) 挿入モードだけEmacsのキーバインドにするとかな 挿入ノーマルモードは完全に手に馴染んでたら強いだろうが、俺はまだ>>231みたいな状況にパッと対応できない ノーマルモードに戻すのが面倒だからという理由でカーソルキー使うぐらいなら、ノーマルモードに戻すのを楽にするようにキーマップ変えたりした方が効率的だろう >>720
自分にとってはカーソルキーを使う方が総合的に楽ってだけのこと
>>705みたいなhjkl原理主義者に例外もいるぞと言いたいわけ
だからあまり突っかかって来ないでくれ hjklにしろカーソルにしろ移動でこれらに頼りっきりになるってことは操作見直したほうがいいよ
vimじゃなくてもどのエディタ使っても効率悪いでしょそれ 別にこっちは妥協してカーソルキー使ってる訳じゃないから余計な心配しなくていいぞ
自分で設定拵えた訳じゃないし既存機能使っただけで勝手に不機嫌になられてもいい迷惑だ >>723
いやいや誰も心配もしてないし不機嫌にもなってないがな
突っかかっているわけでもなく、君個人に向けて話しているわけでもない
レスに対してオレはこうだぞ、私はこうだねとレスを返しているわけで
オマエなんかどうでもいいんだよ、ここはIDも表示されないし
オマエがどことどのレスを書いた奴だなんて把握してねーんだよ
レスが主役なんだ、オマエは脇役だ、脇役がオナってんじゃねーぞw >>722
何が言いたいのか分からん。
どうすればいいって主張なの? マウスが両手でないと操作できなかったら不便だと思う人が多いだろうけど
キーボードでほとんど全ての操作をしてると片手だけで簡単に操作したくなるから
ctrlとなんとかみたいなのは逆に論外になるんだよ
ホームポジションとか言ってる人は両手を常にキーボードに拘束された状態で使ってるんだろうけど >>726
ターミナルに籠もる人もいるから、前提なしにホームポジションがーマウスがーって言っても無意味 俺がターミナルにこもってるタイプなんだよ
だから同時押しするにも片手で簡単に推せて指に変なテンションがかからない丁度いい距離でしか設定してない ctrlって言ってもお前のctrlがどこにあるかなんて知らねえよ ■ このスレッドは過去ログ倉庫に格納されています