Vim Part25 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2015/03/30(月) 20:04:42.55http://www.vim.org/
前スレ
Vim Part24
http://peace.2ch.net/test/read.cgi/unix/1413122189/
関連情報は>>2-6あたり
0213名無しさん@お腹いっぱい。
2015/05/22(金) 11:06:58.93autocmd FileType はバッファに読み込んだファイルの filetype が設定された時に実行されるコマンドだからじゃない?
:source ~/.vimrc を読み込んでも、元々バッファに読み込んであった javascript ファイルはそのままだから、filetype を再設定しないんじゃないかな。
0214名無しさん@お腹いっぱい。
2015/05/22(金) 23:55:02.32vim歴浅いからよくわからないんですけど
|SourcePre| Vimスクリプトを読み込む前
|SourceCmd| Vimスクリプトを読み込む前 |Cmd-event|
これってどっちも同じ機能ってことですか?それともtypoですか?
0215名無しさん@お腹いっぱい。
2015/05/23(土) 06:22:27.58それを一行にまとめて書く(バックスラッシュ除く)と、a 以降まったく色がつかない
その部分に色がつくことは本来は無いようだ
だがバックスラッシュで行継続すると
Vimはそれが「"FileType" に続く内容」であると認識できず、別の構文と解釈して色をつけてしまう
具体的にはExコマンドとみなして色付けしている模様
a (appendの略)、b (bufferの略)、c (changeの略)……
また python や ruby もコマンドとして存在する(:h :python 及び :h :ruby 参照)
けど cpp や html という名前のコマンドは存在しないからそれらには色がついていない、という事みたい
0216212
2015/05/24(日) 21:02:29.72autocmd SourcePre * setlocal nolistでsource vimrc時にnolistが効きました。
ただ拡張子を*にしているので*.js以外もnolistになります。
autocmd SourcePre *.js setlocal nolistと書いてもイベントが発火しません
"*.js"と囲ってもダメでした
どこか間違っているところをご指摘おねがいします。
0217名無しさん@お腹いっぱい。
2015/05/24(日) 22:31:35.55autocmd SourcePre *.js setlocal nolist は source するファイルが vim の設定ファイルじゃないからかな
0218名無しさん@お腹いっぱい。
2015/05/25(月) 00:36:38.25それをやるなら普通は
au BufRead,BufNewFile *.js setl nolist
とかこんな感じ
0219212
2015/05/25(月) 01:30:41.52最初に戻ってFileTypeイベントを使って目指できるようにダイアログを表示してみました
autocmd FileType javascript :!zenity --info
これを書くと、ファイル開いた時とsource ~/.vimrcしたとき両方ともダイアログが表示されました
イベントは発火されていました。
ってことはautocmd FileType javascript setlocal nolistでも発火しているはずなんですが、
setlocalが効いてないのがどうしてなのかわかりません。
>>218
:source ~/.vimrcした時にイベントが発火しませんでした
0220212
2015/05/25(月) 01:31:39.65最初に戻ってFileTypeイベントを使って目指できるようにダイアログを表示してみました
↓
最初に戻ってFileTypeイベントを使って目視できるようにダイアログを表示してみました
0221名無しさん@お腹いっぱい。
2015/05/25(月) 02:46:59.27こういうことけ?
jsのとき setl nolistしたい
js編集中にso .vimrcした場合setl nolistが解除されないようにしたい
:verb se nolistして最後にオプションが設定された場所みてみた?
0222名無しさん@お腹いっぱい。
2015/05/25(月) 14:21:30.520223212
2015/05/25(月) 22:36:10.55サンプルのためnolistを使っているだけです。
autocmd FileType javascript setlocal {old}を
autocmd FileType javascript setlocal {new}に変更した後にsource ~/.vimrcしても{new}が反映されてないので反映されるようにしたいのです
ファイルを開いた直後は{old}が効いてますが、vimrcを編集して{old}を{new}に書き換えてvimrcを再読込しても{new}が反映されないんです
:verb se nolistしても何も表示されませんでした
>>222
この4行しか書いてないです
filetype plugin indent on
set list
colorscheme blue
autocmd FileType javascript setlocal nolist
0224名無しさん@お腹いっぱい。
2015/05/26(火) 00:03:31.01下記のfileを作って起動して、読みこみ直してもイベントは鎮火されてるよ。
一番下のcomemntを外すとそういう事はできるけれど、
私は>>213が正しいような気がするけれど、しかし私は詳しくないので偉い人頼んだ。
filetype plugin indent on
set list
colorscheme blue
autocmd FileType javascript :r!pwd
"edit
0225名無しさん@お腹いっぱい。
2015/05/26(火) 04:40:52.76filetype plugin indent on
autocmd FileType javascript call append ('.', 'test')
そこで以下のどっちらかを打ち込むと打ち込むたびにtestが書き込まれていく。
setlocal filetype=javascript
setfiletype javascript
じゃあ上記のfileにそれをつけたせばと思ってsourceするとどうなるかというと
sourceするたびにtestを書き込む数が増えていってしまう。
その値を初期化できれば完成なんじゃない。
0226名無しさん@お腹いっぱい。
2015/05/26(火) 08:37:00.58少なくとも普通はこんな感じにする
aug Foo
au!
au FileType javascript setl nolist
aug END
こうしないとvimrc読み込むたびにauが増えていく
0227名無しさん@お腹いっぱい。
2015/05/26(火) 12:59:39.80横槍ですが、おかげさまでまた一つ知識が増えました。ありがとうございます。
どうやら人気がありそうな以下の二つの言語で試すと、以下のようにするとできるようです。
filetype plugin indent on
autocmd FileType php call append ('.', 'ririnrin')
augroup foo
autocmd!
autocmd FileType javascript call append ('.', 'rurunrun')
setlocal filetype=javascript
"setfiletype javascript
augroup end
0228名無しさん@お腹いっぱい。
2015/05/26(火) 13:43:41.390229名無しさん@お腹いっぱい。
2015/05/26(火) 13:55:06.54filetype plugin indent on
autocmd FileType php call append ('.', 'ririnrin')
augroup foo
autocmd!
autocmd FileType javascript call append ('.', 'rurunrun')
augroup end
if &filetype == 'javascript'
setlocal filetype=javascript
endif
0230名無しさん@お腹いっぱい。
2015/05/26(火) 14:11:35.210231名無しさん@お腹いっぱい。
2015/05/26(火) 14:35:33.86"これではどうだろ。また何か見落としてるかな。
filetype plugin indent on
autocmd FileType php call append ('.', 'ririnrin')
augroup foo
autocmd!
autocmd FileType javascript call append ('.', 'rurunrun') |let b:filetype_js = 1
augroup end
if exists ('b:filetype_js')
setlocal filetype=javascript
endif
0232隼人新聞社
2015/05/26(火) 16:30:44.21こんなにある、創価員による破壊的狂気的犯行の数々。実際には新聞TVにのらないだけでもっとある!次はあなたの番だ
●宅間守(在日部落)→大阪 附属池田小学校児童殺傷 。大量殺人犯 創価学会員の犯行 両親も創価学会員
8人殺害 15人を殺傷。 朝鮮人部落出身。
●斉藤勇太→JR取手駅前バス無差別殺傷通り魔事件(取手バスジャック) 創価学会員の犯行
「通勤、通学客で混雑するバスの中で手加減せず無差別に襲っており、社会に大きな不安や衝撃を与えた結果は重大だ」
●酒鬼薔薇聖斗→ 東慎一郎(在日)神戸の首切り魔で酒鬼薔薇聖斗 神戸の首切り魔。生首を校門に飾る。2人殺害。創価学会員の犯行 大量殺人犯
●福田孝行(在日)→山口県母子強姦殺害 殺害後屍姦、乳児も殺害 大量殺人犯 創価学会員の犯行。裁判では屍姦は
生き返らせるための(創価流の)儀式だと供述 死刑判決
● 大芦明 →2011年 11月5日 大阪府堺市中区 隣人二名殺害事件。創価学会員の犯行 無期懲役
●八木茂 →埼玉・保険金殺人事件犯人 2名殺害(平成12年)死刑判決 創価学会員の犯行
●武まゆみ→、埼玉・保険金殺人事件犯人 2名殺害(平成12年)無期懲役 創価学会員の犯行
●森田考子→埼玉・保険金殺人事件犯人 2名殺害(平成12年)共犯者で懲役13〜15年の判決 創価学会員の犯行
●柏市連続通り魔殺傷事件X強盗殺人 創価学会員の犯行の犯行
●引寺利明 →マツダ宇品工場ファミリア暴走連続殺傷事件 引き殺しで1人死亡、11人を殺傷 創価学会員の犯行
●織原城二(金聖鐘) → ルーシー・ブラックマンさん事件 創価学会員の犯行 10人の女性に強姦又は強制わいせつ 内2人の女性が死亡
●山口芳寛 →熊本3才女児遺棄事件。レイプ 創価学会員の犯行。幼女に熱い視線、女児が大好き 強姦殺人無期懲役
●内柴正人→柔道金メダリスト(連続)強姦事件 (2009.5.15付 聖教新聞) 創価学会員の犯行
●アクリフーズ毒入り大量殺人事件 創価学会員の犯行
●リサイクルショップエース大量殺人事件 連続殺人!5人以上を殺して埋める 創価学会員の犯行
0233名無しさん@お腹いっぱい。
2015/05/26(火) 22:01:44.62他のタブに移ったらと言うか、他のタブは別のバッファだからftが違うだけじゃね?
FileType は local to buffer のはず
0234名無しさん@お腹いっぱい。
2015/05/27(水) 12:30:01.890235名無しさん@お腹いっぱい。
2015/05/27(水) 21:55:41.34autocmd はイベント時のコマンドを登録するだけだから呼び出しても基本何も発生せんのよ
0236名無しさん@お腹いっぱい。
2015/05/31(日) 12:57:04.36なんというオプションだったか教えてください
0237名無しさん@お腹いっぱい。
2015/06/01(月) 16:20:58.33filetype plugin indent on
syntax enable
vim test.phpでファイルを開いてtest.phpに次のHTMLを書きます
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
そのあと2行目のhref=""の=の次の文字の所にカーソルを持っていきます。
ここでCTRL+vを押してj押してShift+aを押してダブルクォーテーション内を複数行変数できる状態にします。
<?と打ってEscを押してください。
複数行開始行にのみ文字列が挿入されてインデントが崩れます。
これはなぜですか?
0238237
2015/06/01(月) 16:22:42.88@を半角スペースに置き換えてください。
<ul>
@@@@<li><a href=""></a></li>
@@@@<li><a href=""></a></li>
</ul>
ここでは半角スペース4つ置いてますが1つ以上で再現しました
0239237
2015/06/01(月) 16:23:50.45○複数行編集
0240名無しさん@お腹いっぱい。
2015/06/02(火) 23:07:21.610241名無しさん@お腹いっぱい。
2015/06/03(水) 00:19:22.890242名無しさん@お腹いっぱい。
2015/06/03(水) 10:00:26.71cygwinの上で走らせるvimだな
gitなどと連携のしやすさなどに差がある
0243名無しさん@お腹いっぱい。
2015/06/04(木) 20:11:39.17これを別の空のバッファとして右にウィンドウを表示する方法教えてください
毎回ctrl+w vしたあとctrl+wを2回して:e memo.txtして、vimを終了後にrm memo.txtしてます
用途は、一時的にメモしたいことを書き留めることに使いたいんです
0244名無しさん@お腹いっぱい。
2015/06/04(木) 20:44:07.00:vnew memo.txt じゃあかんの?
0245名無しさん@お腹いっぱい。
2015/06/04(木) 20:45:32.30:set splitright
:vnew
でどうだろう。
0246名無しさん@お腹いっぱい。
2015/06/04(木) 21:33:56.35:vnewで実現しました
ありがとうございます
下に出したいときは:newというのも分かりました
0247名無しさん@お腹いっぱい。
2015/06/04(木) 22:12:05.47:new は上に出るよ。
下に出したきゃ :botright new
0248名無しさん@お腹いっぱい。
2015/06/04(木) 22:18:20.570249名無しさん@お腹いっぱい。
2015/06/05(金) 11:47:34.46不正な文字が含まれててUTF-8として開けないんですがUTF-8として読む方法ありませんか?
0250名無しさん@お腹いっぱい。
2015/06/06(土) 22:36:30.460251名無しさん@お腹いっぱい。
2015/06/06(土) 22:43:36.29つかviほとんど使ったことないからよく知らない
0252名無しさん@お腹いっぱい。
2015/06/07(日) 12:44:27.44<C-x><C-u>押しても補完されないしset completefunc=phpcomplete#CompletePHPしても補完されません
0253名無しさん@お腹いっぱい。
2015/06/07(日) 13:53:04.05completefunc じゃなくて ofu にその関数名セットして <c-x><c-o>
0254名無しさん@お腹いっぱい。
2015/06/07(日) 14:02:03.670255名無しさん@お腹いっぱい。
2015/06/07(日) 17:22:34.77例えばdateやlsの結果をlet aに入れたい場合
0256名無しさん@お腹いっぱい。
2015/06/07(日) 17:59:14.68wget http://php.net/manual/ja/indexes.functions.php -O - | nkf -Ww | vim -
>>255
let a=system('date')
0257名無しさん@お腹いっぱい。
2015/06/08(月) 01:01:21.24あざっす
0258名無しさん@お腹いっぱい。
2015/06/08(月) 07:13:25.89バイナリモード
これならUTF-8として不正なバイトも捨てずに済む
0259名無しさん@お腹いっぱい。
2015/06/08(月) 07:45:17.480260名無しさん@お腹いっぱい。
2015/06/08(月) 10:11:43.31nkfとかバイナリモードとか必要ないよ
utf-8って分かってるならエンコードをutf-8に固定してあげればいい
wget http://php.net/manual/ja/indexes.functions.php -O - | vim - --cmd "set fencs=utf-8"
0261258
2015/06/08(月) 14:33:21.65vimrc で fileencodings (fencs) のリストに iso-8859-1 (latin1) を含めていたせい。
fencs の末尾から iso-8859-1 を取除いたら化けなくなった。
UTF-8 として不正な文字を含む「ほぼUTF-8テキスト」を
1 UTF-8 としてテスト → エラーあり
2 ISO-8859-1 としてテスト → エラーなし
3 よってこのファイルは ISO-8859-1 だな間違いない
となっていた模様。
--cmd は vimrc の設定を上書きできない(--cmd の実行後に vimrc が読まれる)ので
vimrc に set fencs+=latin1 等と書かれている場合は結局化ける。
逆に fencs に utf-8 があって且つ latin1 が無ければ、--cmd で指定しなくても化けずに開ける。
0262名無しさん@お腹いっぱい。
2015/06/09(火) 07:41:04.000263名無しさん@お腹いっぱい。
2015/06/10(水) 16:23:02.30phperはこんな文字を仕込むのか、はたまた不正に書き換えられたものなのか
0264名無しさん@お腹いっぱい。
2015/06/10(水) 17:28:46.17このurlが返すhtmlの277行目だかに U+00e3 があってそれがVimで変換エラーになるっぽいな
でも<c-v>ue3 するとそれらしき文字が入力される謎
0265名無しさん@お腹いっぱい。
2015/06/16(火) 01:38:20.61TLet g:ttoc_rx_txt = '^[#2字下げ].*[#「.*」は.見出し]$|^▼\+ .*$'
これ無視されてしまうんですが正規表現間違ってます?
TLet g:ttoc_rx_txt = '^[#2字下げ].*[#「.*」は.見出し]$'
TLet g:ttoc_rx_txt = '^▼\+ .*'
というように分ければ読んでくれるんですが一行に纏めないと上の方に書かれてる行しか読んでくれないもので。両立したいです
他のデフォルトで入ってる拡張子用のは|使って一行に纏められてるんですが……
0266名無しさん@お腹いっぱい。
2015/06/16(火) 05:49:46.79\|
0267名無しさん@お腹いっぱい。
2015/06/16(火) 17:20:41.57それです!出来ました!ありがとうございました!
すみません、よく見てませんでしたorz
0268名無しさん@お腹いっぱい。
2015/06/16(火) 22:15:47.71普段:tabeを使ってるんですけどタブを使わないで:b 1みたいにして切り替える方法に慣れようと思いまして。
一時的なメモにするのでファイルに保存する必要もないです
0269名無しさん@お腹いっぱい。
2015/06/16(火) 22:39:49.600270名無しさん@お腹いっぱい。
2015/06/16(火) 22:46:05.55:enew
0271名無しさん@お腹いっぱい。
2015/06/17(水) 00:37:47.03できましたありがとうございます
0272名無しさん@お腹いっぱい。
2015/06/17(水) 10:45:14.620273名無しさん@お腹いっぱい。
2015/06/17(水) 19:32:23.910274名無しさん@お腹いっぱい。
2015/06/17(水) 19:39:04.650275名無しさん@お腹いっぱい。
2015/06/17(水) 20:56:00.91:shや:!lsしたときに左側だけで実行して、右側のウィンドウは編集画面のままにすることはVimではできないんでしょうか?
0276名無しさん@お腹いっぱい。
2015/06/17(水) 20:59:32.210277名無しさん@お腹いっぱい。
2015/06/17(水) 23:51:01.27例えば、PAGE061.jpgからPAGE252.jpgまであるファイルリストをPage_001.jpgからPage_191.jpgの連番にするってのをよくやりますが、
今は:vnewして:call setline(1,range(1,60))してゼロ埋めしてからggyG:q!してPAGE061.jpgの上にペーストしてからPAGE192.jpg以下を消してPAGEをPage_に置換してます
めんどいです。:callのとこいつも忘れます
0278名無しさん@お腹いっぱい。
2015/06/18(木) 00:44:23.46一気にやるなら
:%s/PAGE\(\d\+\)\.jpg/\=printf('Page_%03d.jpg', str2nr(submatch(1))-60)
連番作成だけならマクロ、関数、increment.vim みたいなプラグインのどれかかな
個人的には UNIX 版だし seq でやんのが一番ラクだと思う
:.!seq -f '\%03g' 1 191
0279名無しさん@お腹いっぱい。
2015/06/18(木) 00:59:35.51seqのは覚えやすそうですね。いただきます
マクロはともかくプラグインをわざわざ入れるのは抵抗がありますね
0280名無しさん@お腹いっぱい。
2015/06/18(木) 01:01:08.020281名無しさん@お腹いっぱい。
2015/06/18(木) 20:23:19.67これを任意の文字か文字列で表示することってできますか?
0282名無しさん@お腹いっぱい。
2015/06/18(木) 21:38:45.47<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
と、なるんですが、<meta charset="UTF-8" />のように、
metaタグのところを />で閉じるにはどうしたらいいですか?
0283名無しさん@お腹いっぱい。
2015/06/19(金) 01:00:36.44ドキュメントをempty_element_suffixで検索するとその下にサンプルが合ったから多分それ書いたら行けると思う
0284名無しさん@お腹いっぱい。
2015/06/19(金) 01:28:14.12vimは
:h setting-tabline にある MyTabLine() 関数を改造
gvimは
:h setting-guitablabel にある GuiTablLabel() を改造
0285名無しさん@お腹いっぱい。
2015/06/19(金) 01:31:08.54seq のやつもコマンドか関数にしてしまえばもっと楽チン
:Seq 1 191 ってやれば 1から191まで3桁前ゼロで連番作るやつとか
-f ‘%03g’ とかうつのめんどくさいし
0286名無しさん@お腹いっぱい。
2015/06/19(金) 12:02:23.67/x/b/2.txt
/x/c/3.txt
/x以下に置いてあるサブディレクトリ内のテキストファイルをvimで全て開く方法を教えてください
ファイルの位置は/dir/dir/fileでこれ以上深い階層は存在しません
0287名無しさん@お腹いっぱい。
2015/06/19(金) 13:49:24.51vim x/**/* とか
0288名無しさん@お腹いっぱい。
2015/06/19(金) 14:35:24.09156行目あたりに書いとけばいいんだろうけどどこに?
0289名無しさん@お腹いっぱい。
2015/06/19(金) 14:47:03.28let zen_kanaとlet han_asciiとlet s:mx_han_kigouとlet s:mx_han_kigouと176行目に足したら・に対応して動いた
0290名無しさん@お腹いっぱい。
2015/06/19(金) 16:32:15.91Vim 起動時ならシェルにまかせる
Vim 内からやるなら :argadd x/**/*.txt みたいな
0291名無しさん@お腹いっぱい。
2015/06/20(土) 23:34:04.38解除されないようにする方法ありますか?
0292名無しさん@お腹いっぱい。
2015/06/21(日) 00:54:22.94再度>>や<<するのが目的なら . を押す。それ以外なら gv
0293名無しさん@お腹いっぱい。
2015/06/21(日) 01:27:34.94.が好きじゃなければ
vnoremap > >gv
vnoremap < <gv
0294名無しさん@お腹いっぱい。
2015/06/21(日) 11:47:52.830295名無しさん@お腹いっぱい。
2015/06/21(日) 12:08:36.68TMTOWTDI
0296名無しさん@お腹いっぱい。
2015/06/21(日) 14:54:52.46あと:messageすると「日本語メッセージ翻訳 村・・・」って出るんですが日本語矯正されるのがいやです
日本語化した覚え無いんですが英語に治す方法を教えてください
0297名無しさん@お腹いっぱい。
2015/06/21(日) 14:57:03.670298名無しさん@お腹いっぱい。
2015/06/22(月) 06:32:23.00language english
って書いておけば?
0299名無しさん@お腹いっぱい。
2015/06/22(月) 13:40:45.22だろ?
0300名無しさん@お腹いっぱい。
2015/06/22(月) 14:44:48.84単語だけを削除したいばあいはどうしたらいいですか?
0301名無しさん@お腹いっぱい。
2015/06/22(月) 15:25:47.51de
0302名無しさん@お腹いっぱい。
2015/06/22(月) 16:26:32.95eは単語の終わりに移動するコマンドなんですね
0303名無しさん@お腹いっぱい。
2015/06/22(月) 16:36:28.50です
:h motion.txt に色々載ってるので他にも興味あればどうぞ
0304名無しさん@お腹いっぱい。
2015/06/23(火) 10:15:25.46公式にコーディング規約で統一されてないんですか?自由ってことですか?
0305名無しさん@お腹いっぱい。
2015/06/23(火) 10:45:44.94何でいなくなったんですか
http://pc5.2ch.net/test/read.cgi/unix/1073825479/
0306名無しさん@お腹いっぱい。
2015/06/23(火) 16:12:04.32この文字化けしてる行のテキスト開こうとすると開けなくて文字化け通りの新規ファイルが作成されちゃうんですが
ファイルブラウザの文字コードとかあるんですか?
0307名無しさん@お腹いっぱい。
2015/06/23(火) 16:13:15.89ソフ板のほうで呼んだら出てくると思うよ。たぶん。
0308名無しさん@お腹いっぱい。
2015/06/23(火) 16:21:55.37普通にファイルを開くときの文字コード判定処理が動いてたと思う
エンコード指定して開きなおしてみるとか。
:e! ++enc=
0309306
2015/06/23(火) 16:46:33.66なんかヘルプのP7,P12にも文字コードがらみのこと書いてありますね
日本語いっぱい使ってますしファイルブラウザ使えないと結構めんどくさいですね。一応タブ補完使えば何とかなりますけど
0310名無しさん@お腹いっぱい。
2015/06/23(火) 17:27:50.33# に変更したいんですが、どうすればいいですか?
0311名無しさん@お腹いっぱい。
2015/06/23(火) 18:18:17.07netrwで全角ではじまるディレクトリ名が扱えない · Issue #489 · vim-jp/issues · GitHub
https://github.com/vim-jp/issues/issues/489
netrw v150 以降では直っているそうです。
netrw.vim - Network oriented reading, writing, and browsing (keywords: netrw ftp scp) : vim online
http://www.vim.org/scripts/script.php?script_id=1075
0312名無しさん@お腹いっぱい。
2015/06/23(火) 18:39:54.87おお!v150でバッチグーでいけました!!
ありがとうエロイ人!
0313名無しさん@お腹いっぱい。
2015/06/24(水) 14:50:18.82つ :h tcomment#DefineType()
ちょっと試した感じだとこれでいけた
:cal tcomment#DefineType('txt', '# %s')
マニュアル嫁
■ このスレッドは過去ログ倉庫に格納されています