X



Vim Part28

■ このスレッドは過去ログ倉庫に格納されています
0635名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 17:51:46.13
.vimファイルで
au[tocmd] [group] {event} {pat} [nested] {cmd}
↑こういう命令を着色するときに[group]が設定されていても{event}を正しく着色してくれるようにしたいのですが
どういうsyntaxを書けばいいか分かりますか。

* syntaxファイルの置き場所や設定の仕方なんかは一通り把握してるつもりです。
0636名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 18:35:15.23
自決しました
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
0638名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 20:00:03.16
すいません。どなたか
特定のハイライトグループを除いたmatchにマッチさせるsyntaxの書きかた知りませんか。
contains=ALLBUTでも近いことはできるんですがALLが含まれるせいで不正な構文も同じように見做されてしまいます。
ちょうど
syntax match XXX contained "\w\+" nocontains=YYY ...
↑こういう指定ができればいいのですが(\w\+という条件に当て嵌まる構文の内YYYグループに含まれるものは除外みたいな)……
0639名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 21:43:03.91
>>635-638
任意のグループ名に対応する方法は分からないな
グループ名を明示することで満足している
https://pastebin.com/Sa4y6LGx
0640名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 22:12:28.66
>>639
おお! ありがとうございます。私の環境ではMyVimrcというグループ名を使っているので
ちょうど希望通りのことができました。感謝します。
0641名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 23:31:59.61
すいません。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
という記法のときはきちんとハイライトされます。
0642名無しさん@お腹いっぱい。
垢版 |
2018/11/12(月) 23:36:04.41
"FILE:$VIMRUNTIME/syntax/vim.vim
syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
↑ハイライトされない原因はこのあたりだと思うんですけど 正直僕には手のつけようがない複雑さです……。
0643名無しさん@お腹いっぱい。
垢版 |
2018/11/13(火) 01:40:31.60
>>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 も同様に
0644635
垢版 |
2018/11/13(火) 06:16:57.63
>>643
まじで まじで 感謝します。
いや〜やっぱり改行の後もしっかり配色されると気分がいいですねぇ。
お手間取っていただき ありがとうございました!
0645635
垢版 |
2018/11/13(火) 06:21:56.83
>>643
あ,何度もすいません,一つ,言葉足らずみたいだったので補足しておきます。
>>639で「任意のグループ」とおっしゃっていましたが
そうではなくて,
https://vim-jp.org/vimdoc-ja/autocmd.html#:augroup
↑ここに
> 混乱を避けるため、既存の {event} の名前とは違
> う名前をつけるべきである。これはたいてい意図し
> ない動作を引き起こす。
とあることから,自動コマンドのグループ名はイベント名と被っていないという前提のもと,
「"\w\+"に一致しvimAutoEventキーワードと一致しない」グループを
vimAutoCmdGroupキーワードとして設定したかったのです。
尤もそんな複雑なことをしなくても「MyVimrc」固定で僕の目的は達成できたのですが。
0646635
垢版 |
2018/11/13(火) 10:43:08.76
寒いのでそろそろ服着ますね。ありがとうございました。
0647名無しさん@お腹いっぱい。
垢版 |
2018/11/13(火) 11:51:55.61
aa/001.jpg
bbcc/001.jpg
これを
aa/aa001.jpg
bbcc/bbcc001.jpg

こうする方法教えろ下さい
面倒な手順で矩形貼り付けはできるようだけど長さがバラバラの場合はどうすりゃいいの
vidirで一括リネームしようと思って
0650名無しさん@お腹いっぱい。
垢版 |
2018/11/16(金) 21:39:11.24
例)「今日はいい天気ですね」→「いい天気」

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

いつもこの方法でやってるのですが、たまにちゃんとペーストできなかったりするので
この方法で正しいのかなと疑問に思えて質問しました。
0654名無しさん@お腹いっぱい。
垢版 |
2018/11/18(日) 21:54:34.33
レジスタの種類なんて意識したことないや
システム側とクリップボードが共有されればそれでいいからな
dの削除がただの切り取りなのが色々と惜しい
0656名無しさん@お腹いっぱい。
垢版 |
2018/11/19(月) 07:53:24.75
>>650
v でビジュアルモードに入って、Y でヤンクすれば行としてヤンクされるよ。Y は大文字な。あとはふつうに p すればいい
0657名無しさん@お腹いっぱい。
垢版 |
2018/11/19(月) 20:53:19.68
ちゃんとペーストできないってのは多分切り取りとで別のデータがバッファに入ったものをpで呼び出してるんだろうな
0658名無しさん@お腹いっぱい。
垢版 |
2018/11/21(水) 17:36:15.68
複数行を矩形貼り付けする方法教えてくれ
foo1
foo2
事前にヤンクしたこの2行を
aa=_bar
bb=_bar
=と_の間に入れて
aa=foo1_bar
bb=foo2_bar
こうしたい

単にfoo1を貼り付けるなら矩形選択後にC-rと"でできるけどこれ複数行の場合はだめだよね
ついでに違う長さの行を貼り付ける場合にも対応してるといいんだけど
0663名無しさん@お腹いっぱい。
垢版 |
2018/11/22(木) 14:37:24.44
・・・すません。バカみたいな質問でした。n押せばいいだけですね・・・レスしたすぐ後に気づくアホさ・・・
0667名無しさん@お腹いっぱい。
垢版 |
2018/11/22(木) 22:51:49.28
iVim結構いいと思うんだけど使ってる人いるかな?
0669名無しさん@お腹いっぱい。
垢版 |
2018/11/25(日) 13:16:47.78
foo1
foo2
aa=_bar
bb=_bar
これってfooを行頭に貼ろうとaでpしたら
afoo1a=_bar
bfoo2b=_bar
1文字ずれてこうならない?
0676名無しさん@お腹いっぱい。
垢版 |
2018/11/26(月) 15:28:44.86
矢印キーで移動できるのになぜわざわざhjklで移動しようとする?
特に挿入モードでは矢印キーでしかできないのに
0678名無しさん@お腹いっぱい。
垢版 |
2018/11/26(月) 18:01:27.47
挿入モードで矢印キー押してカーソル動かすより一旦ノーマルモードに戻ってhjklなりで動かす方が速いだろ
0681名無しさん@お腹いっぱい。
垢版 |
2018/11/26(月) 19:34:18.79
>>678
俺はvi以外でもhjkl使ってるよ
慣れないとか言ってる人が何故文句言ってまで無理して使おうとしてるのかと書いただけ
0686名無しさん@お腹いっぱい。
垢版 |
2018/11/26(月) 22:21:03.50
vimなんか絶対操作覚えきれねえと思ってたけど、使ってみると3日くらいで簡単になれるもんだよな。操作速度はともかく。
秀丸使っててもEscとか;を無意識に押してしまうw
0687名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 11:39:34.73
hjkl(左/下/上/右)
行数+hjkl(3jで下三行)
HLM(カーソル上/下/中)
PageUp/PageDown(一画面上/下)
矢印キー上下左右

結局一般的なバインドの後者2つが最も安定するわ
一気に移動する時は100jみたいにやるが
0688名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 12:22:02.73
ページ送りはCtrl+fb(半ページならud)の方が楽
自分は、Ctrl+fbで適当にページ送り→HMLでページ内ざっくり移動→hjklやwbなどで微調整、という感じ
0691名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 12:44:38.63
そこらへんは片手だけで操作するか両手を常に固定して使うかで分かれるんだよね
ctrl+fbとか同時押しかつ両手とか片手操作からするとありえない割り当てだし
0695名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 18:06:11.21
移動方法だけでこんなにあるとかさすが貫禄のvimだな
Ctrl+fとかさすがに知らんわ
単語一文字だとwでそのまま次の行なのも盲点というか
wとbはそれこそCtrl+←→でいいが
0696名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 19:04:49.83
矢印キーやら使うならvimを使う意味無いような、っていつも思うんだが、
この手の意見ってちょくちょく目にするんだよなあ。
動作の軽快さと多機能さに価値を見出してるんだろうか。
人の好みにケチつける気は無いし、ただの独り言だけど。
0697名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 19:07:38.46
移動以外ほぼ素で使ってる

Insでジャンプ
C-h ^Esci
C-l $Esca
Spj %Esci
ノーマルはEsc抜きで似たようなの

ノーマル回帰
jj Esc 以下同
ただしllだけはallとか頻出語があるんでノーマップ
窓移動
S-h S-wh 以下同
InsはEscしてから

こんなもんで十分だろ
0698名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 19:13:05.63
いや窓移動のデフォはC-w押してから大文字HJKLとかクレイジーなのだっけな?
窓の伸縮もそこから+-とかだったかな
これは矢印キーにマップしてる
0701名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 19:31:25.79
いや困ってる事一つあったわ
Fortranのシンタックスハイライトをカラム揃え記述と自由記述に合わせて自動で切り替えてくれない
保存して開き直すと判別してくれるからインデント見てるんだと思う
拡張子(.for .f .f90 etc)は記述スタイルと関係ないのでfiletype使うのは無理と思う
助けて
0703名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:04:46.05
vscodeやatomみたいなデフォルト状態で高機能なエディタが出てきたから、vimは相対的に高機能とは言えなくなったかな
色々プラグインを入れれば便利になるけど、それを維持するのが面倒くさくなってくる(´・ω・`)
0704名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:14:33.84
矢印キーがないキーボードを使う状況を想定して常にhjklでやれって言う奴ならいた
nvi使ってる訳でもないしあいつ何と戦ってたのかなぁって
POSIX原理主義みたいなのは勘弁して欲しい
0706名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:27:30.08
>>702
すんません出先だったもんで
普通にg:fortran_free/fixed_source変数弄ったらできた
Fnキーでトグルしよう

VIMには最近VSCodeから乗り換えた
理由は公式のエクステンションが無い、野良は一つあったけどゴミgcc準拠の上まともに動かない
昔はFORCEってマルチプラットホームのIDEがあったけど、開発停止して久しい
0707名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:29:19.80
INTELはVisualFortranとか言ってVSバインディング出してるけどVSは買わなきゃだからなあ…
0708名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:33:19.38
>>705
自分はカーソルキーでやってる
Vimだと、「えーと下だからhかないや違うかな」というワンクッションが入って効率が落ちる
ではなぜVimを使うかというと、一般人にはわけのわからない代物なので
難しい仕事をしているふりができるから
0710名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:40:45.78
関係ないけどFPSやってた俺はWASDで移動
0711名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 20:43:59.83
文法がフリーダム過ぎるのも敬遠される一因な気がする
どこにスペース入れても構わない、コンパイラはちゃんと読んでくれるのだから、正規表現マスターなら出来るとは思うけど
予約語もPRINTでも p Ri N Tでもオッケー
0712名無しさん@お腹いっぱい。
垢版 |
2018/11/27(火) 21:45:35.50
hjklって日本語有効状態だと面倒じゃね
alt押せばできるけどこれ使うのundoくらいだ
メタキーは頻繁に使うもんじゃないしな
0716名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 06:44:34.21
>>713
自分はタッチタイピングだけどカーソルキーを使う
ちょっと右手をずらすだけでできるし、いちいちノーマルモードに切り替えないと
カーソルを動かせないというVimの大きな欠点を回避できる
0720名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 07:38:02.10
ノーマルモードに戻すのが面倒だからという理由でカーソルキー使うぐらいなら、ノーマルモードに戻すのを楽にするようにキーマップ変えたりした方が効率的だろう
0721名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 07:57:56.57
>>720
自分にとってはカーソルキーを使う方が総合的に楽ってだけのこと
>>705みたいなhjkl原理主義者に例外もいるぞと言いたいわけ
だからあまり突っかかって来ないでくれ
0722名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 08:57:56.77
hjklにしろカーソルにしろ移動でこれらに頼りっきりになるってことは操作見直したほうがいいよ
vimじゃなくてもどのエディタ使っても効率悪いでしょそれ
0723名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 09:59:55.14
別にこっちは妥協してカーソルキー使ってる訳じゃないから余計な心配しなくていいぞ
自分で設定拵えた訳じゃないし既存機能使っただけで勝手に不機嫌になられてもいい迷惑だ
0724名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 10:17:14.49
>>723
いやいや誰も心配もしてないし不機嫌にもなってないがな
突っかかっているわけでもなく、君個人に向けて話しているわけでもない
レスに対してオレはこうだぞ、私はこうだねとレスを返しているわけで
オマエなんかどうでもいいんだよ、ここはIDも表示されないし
オマエがどことどのレスを書いた奴だなんて把握してねーんだよ
レスが主役なんだ、オマエは脇役だ、脇役がオナってんじゃねーぞw
0726名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 10:56:25.15
マウスが両手でないと操作できなかったら不便だと思う人が多いだろうけど
キーボードでほとんど全ての操作をしてると片手だけで簡単に操作したくなるから
ctrlとなんとかみたいなのは逆に論外になるんだよ
ホームポジションとか言ってる人は両手を常にキーボードに拘束された状態で使ってるんだろうけど
0728名無しさん@お腹いっぱい。
垢版 |
2018/11/28(水) 11:12:36.30
俺がターミナルにこもってるタイプなんだよ
だから同時押しするにも片手で簡単に推せて指に変なテンションがかからない丁度いい距離でしか設定してない
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況