トップページunix
984コメント289KB

Vim Part25 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2015/03/30(月) 20:04:42.55
Vim 6以降に関する話題、Part24です。
http://www.vim.org/

前スレ
Vim Part24
http://peace.2ch.net/test/read.cgi/unix/1413122189/

関連情報は>>2-6あたり
0237名無しさん@お腹いっぱい。2015/06/01(月) 16:20:58.33
vimrcにこの2行だけ書きました
filetype 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を押してください。
複数行開始行にのみ文字列が挿入されてインデントが崩れます。
これはなぜですか?
02382372015/06/01(月) 16:22:42.88
あ。。半角スペースが消えてしまった
@を半角スペースに置き換えてください。
<ul>
@@@@<li><a href=""></a></li>
@@@@<li><a href=""></a></li>
</ul>
ここでは半角スペース4つ置いてますが1つ以上で再現しました
02392372015/06/01(月) 16:23:50.45
&#9747;複数行変数
○複数行編集
0240名無しさん@お腹いっぱい。2015/06/02(火) 23:07:21.61
vimに慣れてきたらWindowsのテキストエディタでC-f誤爆して困る
0241名無しさん@お腹いっぱい。2015/06/03(水) 00:19:22.89
WindowsでもVimを使いなさい
0242名無しさん@お腹いっぱい。2015/06/03(水) 10:00:26.71
Windows用に作られたgvimか
cygwinの上で走らせるvimだな

gitなどと連携のしやすさなどに差がある
0243名無しさん@お腹いっぱい。2015/06/04(木) 20:11:39.17
ctrl+w vでウィンドウが分かれますがバッファは同じですよね
これを別の空のバッファとして右にウィンドウを表示する方法教えてください

毎回ctrl+w vしたあとctrl+wを2回して:e memo.txtして、vimを終了後にrm memo.txtしてます
用途は、一時的にメモしたいことを書き留めることに使いたいんです
0244名無しさん@お腹いっぱい。2015/06/04(木) 20:44:07.00
>>243
:vnew memo.txt じゃあかんの?
0245名無しさん@お腹いっぱい。2015/06/04(木) 20:45:32.30
>>243
:set splitright
:vnew
でどうだろう。
0246名無しさん@お腹いっぱい。2015/06/04(木) 21:33:56.35
>>244-245
:vnewで実現しました
ありがとうございます
下に出したいときは:newというのも分かりました
0247名無しさん@お腹いっぱい。2015/06/04(木) 22:12:05.47
>>246
:new は上に出るよ。
下に出したきゃ :botright new
0248名無しさん@お腹いっぱい。2015/06/04(木) 22:18:20.57
:new は splitbelow 見てんじゃないっけ
0249名無しさん@お腹いっぱい。2015/06/05(金) 11:47:34.46
wget http://php.net/manual/ja/indexes.functions.php -O - | vim -

不正な文字が含まれててUTF-8として開けないんですがUTF-8として読む方法ありませんか?
0250名無しさん@お腹いっぱい。2015/06/06(土) 22:36:30.46
有名な標準的なコマンドだと思ってたけど実はviにはなかったっていうのなんかあります?
0251名無しさん@お腹いっぱい。2015/06/06(土) 22:43:36.29
コマンドではないが%かな
つかviほとんど使ったことないからよく知らない
0252名無しさん@お腹いっぱい。2015/06/07(日) 12:44:27.44
vimに元から入っているphpcomplete.vimってどうやって使うんですか?
<C-x><C-u>押しても補完されないしset completefunc=phpcomplete#CompletePHPしても補完されません
0253名無しさん@お腹いっぱい。2015/06/07(日) 13:53:04.05
>>252
completefunc じゃなくて ofu にその関数名セットして <c-x><c-o>
0254名無しさん@お腹いっぱい。2015/06/07(日) 14:02:03.67
でましたありがとう
0255名無しさん@お腹いっぱい。2015/06/07(日) 17:22:34.77
python,lua,rubyを使わないで変数に標準出力の内容を代入ってどうやりますか?
例えばdateやlsの結果をlet aに入れたい場合
0256名無しさん@お腹いっぱい。2015/06/07(日) 17:59:14.68
>>249
wget 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
>>256
あざっす
0258名無しさん@お腹いっぱい。2015/06/08(月) 07:13:25.89
wget http://php.net/manual/ja/indexes.functions.php -O - | vim -b -

バイナリモード
これならUTF-8として不正なバイトも捨てずに済む
0259名無しさん@お腹いっぱい。2015/06/08(月) 07:45:17.48
>>236 :h ft-vim-indentのg:vim_indent_cont?
0260名無しさん@お腹いっぱい。2015/06/08(月) 10:11:43.31
>>249
nkfとかバイナリモードとか必要ないよ
utf-8って分かってるならエンコードをutf-8に固定してあげればいい

wget http://php.net/manual/ja/indexes.functions.php -O - | vim - --cmd "set fencs=utf-8"
02612582015/06/08(月) 14:33:21.65
>>260でも化けるのは何でだろう……と、ようやく原因が分かった。

vimrc で 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.00
--cmd "autocmd StdinReadPre * set fencs=utf-8"
0263名無しさん@お腹いっぱい。2015/06/10(水) 16:23:02.30
&#65533;が何の文字なのかさっぱり
phperはこんな文字を仕込むのか、はたまた不正に書き換えられたものなのか
0264名無しさん@お腹いっぱい。2015/06/10(水) 17:28:46.17
>>249
このurlが返すhtmlの277行目だかに U+00e3 があってそれがVimで変換エラーになるっぽいな
でも<c-v>ue3 するとそれらしき文字が入力される謎
0265名無しさん@お腹いっぱい。2015/06/16(火) 01:38:20.61
ttoc.vimについてなんですが、
TLet g:ttoc_rx_txt = '^[#2字下げ].*[#「.*」は.見出し]$|^▼\+ .*$'
これ無視されてしまうんですが正規表現間違ってます?
TLet g:ttoc_rx_txt = '^[#2字下げ].*[#「.*」は.見出し]$'
TLet g:ttoc_rx_txt = '^▼\+ .*'
というように分ければ読んでくれるんですが一行に纏めないと上の方に書かれてる行しか読んでくれないもので。両立したいです
他のデフォルトで入ってる拡張子用のは|使って一行に纏められてるんですが……
0266名無しさん@お腹いっぱい。2015/06/16(火) 05:49:46.79
>>265
\|
0267名無しさん@お腹いっぱい。2015/06/16(火) 17:20:41.57
>>266
それです!出来ました!ありがとうございました!
すみません、よく見てませんでしたorz
0268名無しさん@お腹いっぱい。2015/06/16(火) 22:15:47.71
:e でファイル名のないウィンドウを編集する方法ってありますか?
普段:tabeを使ってるんですけどタブを使わないで:b 1みたいにして切り替える方法に慣れようと思いまして。
一時的なメモにするのでファイルに保存する必要もないです
0269名無しさん@お腹いっぱい。2015/06/16(火) 22:39:49.60
:enew
0270名無しさん@お腹いっぱい。2015/06/16(火) 22:46:05.55
>>268
:enew
0271名無しさん@お腹いっぱい。2015/06/17(水) 00:37:47.03
>>269-270
できましたありがとうございます
0272名無しさん@お腹いっぱい。2015/06/17(水) 10:45:14.62
slackって招待されないと見えないんだな
0273名無しさん@お腹いっぱい。2015/06/17(水) 19:32:23.91
vim、中に出すぞ!
0274名無しさん@お腹いっぱい。2015/06/17(水) 19:39:04.65
emacsならまだ
0275名無しさん@お腹いっぱい。2015/06/17(水) 20:56:00.91
右左にウィンドウを分割して、左側にカーソルがあるとします
:shや:!lsしたときに左側だけで実行して、右側のウィンドウは編集画面のままにすることはVimではできないんでしょうか?
0276名無しさん@お腹いっぱい。2015/06/17(水) 20:59:32.21
そういうのはscreenとかtmuxの範疇な気がする
0277名無しさん@お腹いっぱい。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
>>277
一気にやるなら
:%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.51
>>278
seqのは覚えやすそうですね。いただきます
マクロはともかくプラグインをわざわざ入れるのは抵抗がありますね
0280名無しさん@お腹いっぱい。2015/06/18(木) 01:01:08.02
プラグインならvim-rengbangとかかね
0281名無しさん@お腹いっぱい。2015/06/18(木) 20:23:19.67
更新があるとタブに+が表示されますけど
これを任意の文字か文字列で表示することってできますか?
0282名無しさん@お腹いっぱい。2015/06/18(木) 21:38:45.47
emmet-vimで、!を展開すると、
<!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を設定したらできるって書いてあったよ多分
ドキュメントをempty_element_suffixで検索するとその下にサンプルが合ったから多分それ書いたら行けると思う
0284名無しさん@お腹いっぱい。2015/06/19(金) 01:28:14.12
>>281
vimは
:h setting-tabline にある MyTabLine() 関数を改造
gvimは
:h setting-guitablabel にある GuiTablLabel() を改造
0285名無しさん@お腹いっぱい。2015/06/19(金) 01:31:08.54
>>279
seq のやつもコマンドか関数にしてしまえばもっと楽チン
:Seq 1 191 ってやれば 1から191まで3桁前ゼロで連番作るやつとか
-f ‘%03g’ とかうつのめんどくさいし
0286名無しさん@お腹いっぱい。2015/06/19(金) 12:02:23.67
/x/a/1.txt
/x/b/2.txt
/x/c/3.txt

/x以下に置いてあるサブディレクトリ内のテキストファイルをvimで全て開く方法を教えてください
ファイルの位置は/dir/dir/fileでこれ以上深い階層は存在しません
0287名無しさん@お腹いっぱい。2015/06/19(金) 13:49:24.51
>>286
vim x/**/* とか
0288名無しさん@お腹いっぱい。2015/06/19(金) 14:35:24.09
kaoriyaさんのWin用vimのzipからhz_ja.vimをいただいて:%Zenkakuを使ってみたんだけど、・が全角にならない
156行目あたりに書いとけばいいんだろうけどどこに?
0289名無しさん@お腹いっぱい。2015/06/19(金) 14:47:03.28
失礼、事故解決
let zen_kanaとlet han_asciiとlet s:mx_han_kigouとlet s:mx_han_kigouと176行目に足したら・に対応して動いた
0290名無しさん@お腹いっぱい。2015/06/19(金) 16:32:15.91
>>286
Vim 起動時ならシェルにまかせる
Vim 内からやるなら :argadd x/**/*.txt みたいな
0291名無しさん@お腹いっぱい。2015/06/20(土) 23:34:04.38
ヴィジュアルモードで選択した時に>>や<<すると選択が解除されるんですが
解除されないようにする方法ありますか?
0292名無しさん@お腹いっぱい。2015/06/21(日) 00:54:22.94
>>291
再度>>や<<するのが目的なら . を押す。それ以外なら gv
0293名無しさん@お腹いっぱい。2015/06/21(日) 01:27:34.94
>>291
.が好きじゃなければ
vnoremap > >gv
vnoremap < <gv
0294名無しさん@お腹いっぱい。2015/06/21(日) 11:47:52.83
. が好きじゃないVimmerってどないやねんw
0295名無しさん@お腹いっぱい。2015/06/21(日) 12:08:36.68
やりたいようにやればいいんだよ
TMTOWTDI
0296名無しさん@お腹いっぱい。2015/06/21(日) 14:54:52.46
何でvimを起動すると「Vim はオープンソースであり自由に配布可能です」って日本語で表示されるんですか?
あと:messageすると「日本語メッセージ翻訳 村・・・」って出るんですが日本語矯正されるのがいやです
日本語化した覚え無いんですが英語に治す方法を教えてください
0297名無しさん@お腹いっぱい。2015/06/21(日) 14:57:03.67
.bashrcでもいじっとけ
0298名無しさん@お腹いっぱい。2015/06/22(月) 06:32:23.00
.vimrc に
language english
って書いておけば?
0299名無しさん@お腹いっぱい。2015/06/22(月) 13:40:45.22
you can speak english.
だろ?
0300名無しさん@お腹いっぱい。2015/06/22(月) 14:44:48.84
dwで単語の右側の半角スペースも削除されるんですが
単語だけを削除したいばあいはどうしたらいいですか?
0301名無しさん@お腹いっぱい。2015/06/22(月) 15:25:47.51
>>300
de
0302名無しさん@お腹いっぱい。2015/06/22(月) 16:26:32.95
ありがとうございます
eは単語の終わりに移動するコマンドなんですね
0303名無しさん@お腹いっぱい。2015/06/22(月) 16:36:28.50
>>302
です
:h motion.txt に色々載ってるので他にも興味あればどうぞ
0304名無しさん@お腹いっぱい。2015/06/23(火) 10:15:25.46
vimに含まれているautoloadディレクトリ内のvimファイルのインデントがタブだったり半角スペースだったり両方混じってたりするんですが
公式にコーディング規約で統一されてないんですか?自由ってことですか?
0305名無しさん@お腹いっぱい。2015/06/23(火) 10:45:44.94
koronさんってむかし2ちゃんにいたのか
何でいなくなったんですか
http://pc5.2ch.net/test/read.cgi/unix/1073825479/
0306名無しさん@お腹いっぱい。2015/06/23(火) 16:12:04.32
http://i.imgur.com/oOhIZ9m.png
この文字化けしてる行のテキスト開こうとすると開けなくて文字化け通りの新規ファイルが作成されちゃうんですが
ファイルブラウザの文字コードとかあるんですか?
0307名無しさん@お腹いっぱい。2015/06/23(火) 16:13:15.89
>>305
ソフ板のほうで呼んだら出てくると思うよ。たぶん。
0308名無しさん@お腹いっぱい。2015/06/23(火) 16:21:55.37
>>306
普通にファイルを開くときの文字コード判定処理が動いてたと思う
エンコード指定して開きなおしてみるとか。
:e! ++enc=
03093062015/06/23(火) 16:46:33.66
utf8のunixなんですがなんでしょうね……
なんかヘルプのP7,P12にも文字コードがらみのこと書いてありますね
日本語いっぱい使ってますしファイルブラウザ使えないと結構めんどくさいですね。一応タブ補完使えば何とかなりますけど
0310名無しさん@お腹いっぱい。2015/06/23(火) 17:27:50.33
プラグインの話で恐縮ですが、tcommentで指定のないfiletypeのコメント書式が/* */ なのを
# に変更したいんですが、どうすればいいですか?
0311名無しさん@お腹いっぱい。2015/06/23(火) 18:18:17.07
>>306
netrwで全角ではじまるディレクトリ名が扱えない &#183; Issue #489 &#183; vim-jp/issues &#183; 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
>>311
おお!v150でバッチグーでいけました!!
ありがとうエロイ人!
0313名無しさん@お腹いっぱい。2015/06/24(水) 14:50:18.82
>>310
つ :h tcomment#DefineType()
ちょっと試した感じだとこれでいけた
:cal tcomment#DefineType('txt', '# %s')
マニュアル嫁
0314名無しさん@お腹いっぱい。2015/06/24(水) 18:50:38.08
fizzyfinder以外で一年以内に更新されているあいまい検索ができるプラグインってありませんか?
0315名無しさん@お腹いっぱい。2015/06/24(水) 19:19:06.60
>>314
思いつく限りだが ctrlp.vim, unite, fzf
俺はctrlpユーザー
0316名無しさん@お腹いっぱい。2015/06/24(水) 21:03:52.57
バッチグー(笑)
0317名無しさん@お腹いっぱい。2015/06/25(木) 12:27:15.13
5000aabcdefgh
これすごい重いんですがなんでですか?
0318名無しさん@お腹いっぱい。2015/06/25(木) 15:38:10.98
ファイルが更新状態であるかvim scriptでどうやって調べるのか教えてください
0319名無しさん@お腹いっぱい。2015/06/25(木) 15:52:56.84
&modで解決しました
英語版スタックオーバーフローのコピペしただけでこれが何をするのかよく分かりません
:h modするとスクリーンサイズがなんたらってのがヒットしてよくわりませんでした
0320名無しさん@お腹いっぱい。2015/06/25(木) 16:10:30.00
>>319
:h expr-option
:h 'mod'
0321名無しさん@お腹いっぱい。2015/06/25(木) 18:32:17.18
>>317
Vim の実装上一行が長くなるとめっちゃ遅くなる
試しに 5000a を 5000o にしたらすぐに終わるはず
0322名無しさん@お腹いっぱい。2015/06/26(金) 16:35:19.60
あ、ほんとだaだとものすごい時間かかったのにoだと6秒ぐらいで終わりました
間違えてタイプミスしたら時間を無駄にするので気をつけようと思います
0323名無しさん@お腹いっぱい。2015/06/27(土) 08:56:10.41
突然dat落ちってやつなってた。
なんでだろ
0324名無しさん@お腹いっぱい。2015/06/28(日) 18:36:38.13
for i in range(3)
execute ":normal o".i
echo i
sleep 1
endfor
これ最後に本文エリアにまとめて文字が表示されるのはなぜですか?
echoで表示された文字と一緒に表示されません
0325名無しさん@お腹いっぱい。2015/06/30(火) 16:05:15.07
:hしてから:qしても:ls!でバッファに残ってますが何でですか?
0326名無しさん@お腹いっぱい。2015/06/30(火) 20:04:02.92
>>325
ヘルプ読まずに書きますが、:quit とか :bdelete だと 'buflisted' が 0 になるだけだからじゃないかと
:ls! でも出ないようにしたければ :bwipeout でいける
0327名無しさん@お腹いっぱい。2015/06/30(火) 20:07:13.90
>>324
スクリプト実行中は画面が更新されないから、これでいけるはず
for i in range(3)
 execute ":normal o".i
 redraw!
 echo i
 sleep 1
endfor
0328名無しさん@お腹いっぱい。2015/07/01(水) 13:06:05.85
vim-javacomplete2のインストール方法の記事を誰か書いて!!!
アフィ貼ってくれたらクリックするからおねがい!
0329名無しさん@お腹いっぱい。2015/07/02(木) 17:53:18.47
https://github.com/vim-scriptsって誰が管理してるんですか?
0330名無しさん@お腹いっぱい。2015/07/02(木) 18:30:45.51
>>329
知らなかったから調べてみた
ここからたどると
ttp://vim-scripts.org/vim/support.html
この二人がメインっぽいな
ttps://github.com/vim-scraper
0331名無しさん@お腹いっぱい。2015/07/02(木) 19:16:23.60
海外版mattnとkoronみたいな人たちか
0332名無しさん@お腹いっぱい。2015/07/02(木) 21:11:00.22
ある程度ここで質問して行ったら自然にドキュメントの読み方が分かるようになって自分の力で簡単なプラグインなら書けるようになりました
ここの先輩方に感謝します
0333名無しさん@お腹いっぱい。2015/07/02(木) 22:03:04.87
>>331
上の人は知らんけどgmarikはVundle作者

しかし最近は総本山であるvim.orgにいちいち上げたりしなくなってしまった
まだ一定数利用者いるようなんだがな
0334名無しさん@お腹いっぱい。2015/07/02(木) 22:08:17.84
>>332
よかったな
便利なの出来たら公開するといいよ
0335名無しさん@お腹いっぱい。2015/07/03(金) 09:41:54.64
文章を入力する箇所、ファイル名や文字エンコーディングが表示される箇所、
E100みたいにエラーが表示される箇所のVimでの呼び方が知りたいんですが
Vimの画面の名称の説明ってヘルプのどこに載ってますか?
0336名無しさん@お腹いっぱい。2015/07/03(金) 19:04:17.07
>>335
> 文章を入力する箇所
→ウィンドウ?

> ファイル名や文字エンコーディングが表示される箇所
→ステータスライン

> E100みたいにエラーが表示される箇所
→コマンドライン

あとset showmodeした時に表示される箇所
→最下行

>Vimの画面の名称の説明ってヘルプのどこに載ってますか?
各名称をまとめて説明してあるヘルプはないんじゃないかなぁ
■ このスレッドは過去ログ倉庫に格納されています