トップページunix
988コメント268KB

Vim Part21

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2012/07/16(月) 01:09:05.70
Vim 6以降に関する話題、Part21です。
http://www.vim.org/

前スレ
Vim Part20
http://toro.2ch.net/test/read.cgi/unix/1322212163/

関連情報は>>2-6あたり。
0483名無しさん@お腹いっぱい。2012/10/12(金) 01:33:28.95
>>482
起動直後は、nosmartindent になってるということでっか?
なにかのプラグインやらで変更してるんかな…
0484名無しさん@お腹いっぱい。2012/10/12(金) 01:52:18.43
'compatible' を set しているとか
0485名無しさん@お腹いっぱい。2012/10/12(金) 04:15:51.54
>>483
原因はプラグインでした。
ありがとうございました。
matchit.vim を読み込むと、無効にされてしまいす。
読み込んでも、その後でコマンドラインから、
:set smartindent
ってやれば有効にはなるんですけど、毎回面倒です。
なにか対策とかないでしょうか?
0486名無しさん@お腹いっぱい。2012/10/12(金) 08:59:25.45
>>485 です。
すいません、上記は間違いです。
原因は、
.vimrc の filetype の記述でした。
filetype plugin indent on を
filetype plugin on に直したところ、正常に動作しました。
お騒がせしました。
0487名無しさん@お腹いっぱい。2012/10/17(水) 13:04:54.44
ここでいいのかわからんが質問。
MacVim.app使ってて、コマンドラインから gvim filename.txt とすると
ファイルがMacVim.appで開かれる。
ここまではいいんだけど、gvim filename.txt とするたびに、新しいウィンドウで
開かれてしまうのが困る。
できれば新しいウィンドウではなくタブで開いてほしいんだけど、そんなことは
可能ですか。
0488名無しさん@お腹いっぱい。2012/10/17(水) 13:27:57.52
>>487
Mac Vim 再び
http://anago.2ch.net/test/read.cgi/mac/1133534694/
0489名無しさん@お腹いっぱい。2012/10/17(水) 14:02:55.24
>>487
タブで開くやり方は一般的な他の環境でも一緒だけど、
gvim --remote-tab-silent ~/foo
0490名無しさん@お腹いっぱい。2012/10/17(水) 15:25:16.36
>>489
さんくす!
0491名無しさん@お腹いっぱい。2012/10/20(土) 13:22:39.32
neosnippet使ってます。インストールはなんとかできたんですが、
スニペットの文法がわかりません。
https://github.com/Shougo/neosnippet/blob/master/doc/neosnippet.txt
やりたいことは、スニペットのパラメータを別の箇所でもういちど使うことです。
たとえばこういうスニペットを定義して

snippet debug
  print("*** ${1} = " + (${1}).inspect + "¥n")

使う時は debug <C-k> $xyz <C-k> と入力したら
print("*** $xyz = " + ($xyz).inspect + "¥n")
と展開されてほしいです。
0492名無しさん@お腹いっぱい。2012/10/20(土) 16:28:18.09
>>491
二つ目の${1}は$1にする
0493名無しさん@お腹いっぱい。2012/10/20(土) 19:54:22.33
>>491
うんこステマ乙
0494名無しさん@お腹いっぱい。2012/10/20(土) 21:55:45.24
neoなんたらって流行ってるんだね
0495名無しさん@お腹いっぱい。2012/10/20(土) 22:17:17.59
何それ。
0496名無しさん@お腹いっぱい。2012/10/20(土) 22:25:27.72
neo〜って名前のプラグイン最近多いね、ってことじゃないのか
0497名無しさん@お腹いっぱい。2012/10/20(土) 22:54:13.89
そういうこと。私は一個も使っておりませんが。
0498名無しさん@お腹いっぱい。2012/10/21(日) 06:25:07.28
>>492
できました。ありがとうございます。
0499名無しさん@お腹いっぱい。2012/10/22(月) 00:25:28.47
plugin で autoload function ってよく :function! と宣言されてる気がしますが、
これなんで ! 付けてるんですかね?害はないからとりあえず?
autoload じゃなければリロードのためかと思いますが、autoload もリロードのため、かな。
plugin のリロードって修正する人以外はしませんかね。普通に使ってる人には関係ない指定でしょうか。
0500名無しさん@お腹いっぱい。2012/10/22(月) 08:12:05.02
!は関数の再定義・上書きOK の印
もし ! がなくて、その名前の関数がすでに定義されていたら、エラーになる

When [!] is used, an existing function is silently replaced.
Unless it is currently being executed, that is an error.
0501名無しさん@お腹いっぱい。2012/10/22(月) 11:00:20.84
>>499
plugin/foo.vimのlocal script function (s:foo)の場合は、ふつうは他から再定義されることはないから、開発中意外はこれといって意味はないように思える。
なぜか、プラグインがグローバル関数を宣言していて、再定義されたくない場合は、! を付けないかもしれない。

autoloadはリロードとかそういう意味じゃなくて、関数の定義を遅延させることでスクリプトの読み込みを高速化する仕組み。
:h autoload-functions
0502名無しさん@お腹いっぱい。2012/10/22(月) 21:25:20.74
へー、なるほど
0503名無しさん@お腹いっぱい。2012/10/22(月) 22:42:21.37
>>501
やはり開発者用ですかね。
わざと ! を外すことも考えられるわけですか。
そういえば plugin で global function を interface にすることはあまりないかもしれませんね。
mapping や command にするから。
The NERD tree とかは plugin (The NERD treeの)用に global function を API にしているようですね。
command でもいい気はしますが、ex より eval の方が適しているという判断なのでしょう。多分。

書き方がアレでしたが、autoload がリロードと思っているわけではなくて、
autoload function の ! も開発中のリロードエラー回避目的で付けてるのかな、という意味です。

まあ開発中にリロードする人以外は ! を付ける必要がなさそうですね。
0504名無しさん@お腹いっぱい。2012/10/24(水) 00:43:41.00
:colorscheme <TAB>押して出てくるスキーマ一覧を配列に格納する方法って
ないですか?
0505決め打ち外したらごめんw2012/10/24(水) 01:07:54.60
結果としてカラースキームの一覧というかさくさく試していける環境が欲しいんだろうとエスパーして、
この2つがクリティカルすることを祈る。
http://d.hatena.ne.jp/osyo-manga/20110531/1306818191
http://vim-users.jp/2010/12/hack188/
0506名無しさん@お腹いっぱい。2012/10/24(水) 08:06:04.02
>>505はできる子
0507名無しさん@お腹いっぱい。2012/10/25(木) 21:17:16.38
>>504
let list = split(globpath(&rtp, 'colors/*.vim'), '\n')
0508名無しさん@お腹いっぱい。2012/10/27(土) 00:23:45.33
>>505-507
なるほど、ありがとうございます。
redirとか試したけど出来なかったので、助かりました
0509名無しさん@お腹いっぱい。2012/10/27(土) 20:13:18.70
#include<stdio.h>
void main(){
int n;
scanf("%d",&n);
printf("%d¥n",n);
}

上をquickrun.vimで実行するとnに入力出来ないままprintfで出力されてしまいます。
vimrcには特に何も書いていないです。
エスパー様よろしくお願いします。
0510名無しさん@お腹いっぱい。2012/10/28(日) 02:39:20.51
>>509
仕様
0511名無しさん@お腹いっぱい。2012/10/29(月) 20:31:18.75
引数に"< 123"でどうか
0512名無しさん@お腹いっぱい。2012/10/30(火) 02:17:55.09
uniteってGvimでないと使えないの?
CUIのvimじゃ無理?
0513名無しさん@お腹いっぱい。2012/10/30(火) 05:35:07.49
>>512
CUIでも使えるよ
0514名無しさん@お腹いっぱい。2012/10/30(火) 07:44:55.28
>>513
how how how
0515名無しさん@お腹いっぱい。2012/10/30(火) 16:04:17.00
>>514
ctrlp.vimかわいいよ
05165092012/10/31(水) 03:26:54.06
>510,>511
レスありがとうございます。
引数を指定する方法はダメでした。
quickrunではもともと標準入力は使えないんですかね?
普通にターミナルで実行したような挙動をしてほしいのですが…
書き忘れていましたが環境はlinux-slackwareです
0517名無しさん@お腹いっぱい。2012/10/31(水) 03:53:06.00
>>516
quickに拘らなくてもいいんじゃない?
普通にコンパイルして実行しませう
0518名無しさん@お腹いっぱい。2012/10/31(水) 11:45:50.31
>>516
ヘルプにもそういうことができそうな記述みつからんね…少なくとも素の状態では。
色々拡張できそうだから、なんか書いたらいけるのかも。想像だけど。

これも固まったみたいになるし
#! ruby
puts 1
until $stdin.gets; end
puts 2
0519名無しさん@お腹いっぱい。2012/11/01(木) 10:48:34.33
quickrun.vimでGUIプログラムが動きません
デバイスドライバプログラムも動きません
どうしたらいいですか?
0520名無しさん@お腹いっぱい。2012/11/01(木) 12:00:40.33
>>519
流行りのneoquickrun.vimを作ったらいいと思います
0521名無しさん@お腹いっぱい。2012/11/01(木) 17:36:07.25
>>520
SuperNeoシリーズ、略してスネオシリーズマダー?!チンチン
0522名無しさん@お腹いっぱい。2012/11/01(木) 22:53:18.74
そういえばquickrunで\r押すとgvim落ちる現象生じてるけどほっといてる
0523名無しさん@お腹いっぱい。2012/11/01(木) 23:09:13.59
>>522
それは作者に報告しましょうよ
Githubのissueとかtwitterとか
0524名無しさん@お腹いっぱい。2012/11/02(金) 11:42:29.93
>>522
MacVimだったらこれちゃう?
ttp://wizardmode.com/2012/07/mountain-lion-and-homebrew-vim-importerror-no-module-named-site/
0525名無しさん@お腹いっぱい。2012/11/02(金) 12:43:20.09
>>523
そこまでVimに精通してるわけでもないので俺のしょうもないミスだったら恥ずかしいです
>>524
いやOSはWindows7のxpモードでのことなのだが
RubyとかPython有効にするのにmingwでビルドしたVim7.3.691で\r、:QuickRunを押した途端にGVimが落ちてしまう
ただPythonが怪しいというのはすごくあるかもしれないので確認してみる
0526名無しさん@お腹いっぱい。2012/11/02(金) 16:22:16.21
ミスでは落ちないだろう。
報告しといてよ。
0527名無しさん@お腹いっぱい。2012/11/04(日) 10:10:07.51
ttp://pragprog.com/book/dnvim/practical-vim
この本良さげやね
あっちのAmazonの評価もえらい高い
0528名無しさん@お腹いっぱい。2012/11/04(日) 12:23:29.00
emacsから乗り換えでやってきました
もうあのダサさにはついていけない
0529名無しさん@お腹いっぱい。2012/11/04(日) 12:36:25.62
>>528
おめでとう
0530名無しさん@お腹いっぱい。2012/11/04(日) 13:36:48.49
いちいち他のエディタを貶めないと使えないものかね
0531名無しさん@お腹いっぱい。2012/11/04(日) 19:28:08.13
そういう人もいるってことよ。
0532名無しさん@お腹いっぱい。2012/11/04(日) 20:54:43.84
V(imi)V < 編集してやる!
0533名無しさん@お腹いっぱい。2012/11/05(月) 19:57:22.89
ネットブックをemacs専用機にしてるとか言ってるSD誌の記事があった
機能をまとめるのが捗るという考えがダサい
だからUniteもダサい
0534名無しさん@お腹いっぱい。2012/11/05(月) 20:00:16.87
UNIX的じゃないということかね
別にダサくはないけど、俺もそれは使ってないね
0535名無しさん@お腹いっぱい。2012/11/05(月) 20:02:18.33
vimだと逆にどんなことがいいの?
0536名無しさん@お腹いっぱい。2012/11/05(月) 20:22:07.06
エディタ論争はよそでやれ。
0537名無しさん@お腹いっぱい。2012/11/05(月) 21:00:06.17
>>533
Uniteはフレームワークだよ。ただ単に機能をまとめたものと見ていてはその魅力には気付かない。
anything.elを参考に作られたが、実際の使われ方はanything.elとは大分異なるように思う。
0538名無しさん@お腹いっぱい。2012/11/05(月) 21:11:10.09
ネットブックって10インチくらいだろ
キーボードもちっちゃいだろうに
0539名無しさん@お腹いっぱい。2012/11/05(月) 21:42:11.39
anything.elは俺の周囲では超不評。あれのどこがemacs界の革命なのか分からん。
このスレでもちょっと話題になったけどvimにもanything.elっぽい物があるんだっけか
0540名無しさん@お腹いっぱい。2012/11/05(月) 22:42:28.23
>>539
それがUniteって話なんじゃないのかね?
いや、Uniteはそれを超越している。ということか
0541名無しさん@お腹いっぱい。2012/11/05(月) 22:47:11.77
あ。すまん。勝手にUnityに脳内変換してたせいでトンチンカンなレスしてしまった。
確かにググってみたらUnite.vimがanything.elのvim版みたいだね。
俺もあーゆーまとめる系はパスかな。
0542名無しさん@お腹いっぱい。2012/11/05(月) 22:47:24.74
Shougoウェアは不要だな
0543名無しさん@お腹いっぱい。2012/11/05(月) 22:50:02.79
vimfilerはフツーに便利
0544名無しさん@お腹いっぱい。2012/11/05(月) 23:08:44.09
>>541
そっちかい!
0545名無しさん@お腹いっぱい。2012/11/05(月) 23:21:54.34
俺もまとめる系は…といいつつも、ctrlp.vimを使ってます
uniteほど、まとめる度は高くないと思うけど
0546名無しさん@お腹いっぱい。2012/11/10(土) 18:38:25.60
shougoのLTスライド、ネットで読む限りではかなりギャグが寒い
0547名無しさん@お腹いっぱい。2012/11/10(土) 20:21:30.36
逆にuniteに慣れすぎてほかのエディタにうつれない
0548名無しさん@お腹いっぱい。2012/11/10(土) 20:29:01.38
vimが妙に重いんだ。.vimrc読み込ませないで起動するのどうやったかな? Windows版。
0549名無しさん@お腹いっぱい。2012/11/10(土) 22:00:32.63
>>548
とりあえずどこかに移動しとけば?
0550名無しさん@お腹いっぱい。2012/11/10(土) 22:21:16.36
-u NORC
:h --noplugin
0551名無しさん@お腹いっぱい。2012/11/10(土) 23:25:18.75
知り合いが開発環境構築まとめ〜みたいなのを見たのか
ヘルプも読まずにuniteに行ってたのが気になった。
あれを意図的に避けることでロスしてる事も間違いなくあるけど
自分に必要な機能が固まってないのに柔らかい土壌を
uniteの推奨するやり方で固めていくのは成長止まるわなぁって。
0552名無しさん@お腹いっぱい。2012/11/10(土) 23:30:10.98
>>550
thanks 透明化がものすごいパワー使って遅くしてしまったみたい。だから切ってしまった。
4行程度コメントアウトしただけで、相当軽くなったありがとう
0553名無しさん@お腹いっぱい。2012/11/11(日) 00:09:50.71
>>547
バンクーバー乙
twitterもステマツイートだらけ
0554名無しさん@お腹いっぱい。2012/11/11(日) 02:29:53.52
ググっても解決できなかったので質問させてください

;<何かしらの文字列>
と打った時に
.. <何かしらの文字列>::
と入力してくれる様なmapを書きたいのですが

どうやってこの<何かしらの文字列>を取得すればいいのかが分からなくて困っています

どなたか教えていただけたら幸いです
0555こういうのか?2012/11/11(日) 07:28:25.96
"鍵括弧の自動入力
inoremap { {}<LEFT>
inoremap ( ()<LEFT>
0556名無しさん@お腹いっぱい。2012/11/11(日) 07:41:40.82
Vimのインデント関係について
normalモードでoを入力して、一行下に行を作って挿入しようとした場合
何も入力せずにnormalモードに戻るとインデントが無い状態に戻りますよね?
これをどうにか出来ませんか?わかりにくかったらすいません。

それと、タブによるインデントを
・一発でその行に適したインデントにする。(if文などで入れ子構造になっている場合、
タブ→タブ→タブ→・・・としなくても良いように)
・適したインデント以降はタブを押しても何も起きない、そこで止まる。
これもわかりにくかったらすいません。Emacsのデフォルトはこのようになっているみたいです。

決してEmacsを持ち上げているわけではないので、ならEmacs使えとか言わないで下さい。
0557名無しさん@お腹いっぱい。2012/11/11(日) 09:36:25.52
nnoremap o ob<BS>
みたいに一回入力して消すマップをしておく
0558名無しさん@お腹いっぱい。2012/11/11(日) 10:04:57.51
>>554
let mojiretsu = input("mojiretsu?: ")
で取得して.. ::くっつけてから貼り付けるとか
0559名無しさん@お腹いっぱい。2012/11/11(日) 13:07:39.30
>>554
>>558で十分かもしらんが一応やってみた。
ちゃんとテストしとらんが、とりあえず動いてるとおもう
ttp://codepad.org/hY9sIcgG
0560名無しさん@お腹いっぱい。2012/11/11(日) 14:05:13.63
>>556
タブのインデントはccがその挙動だけど、>>557と同じくノーマルモードに戻ったら消えるので
inoremap <Tab> cc<Space><BS>

すでに行に何か文字がある場合何もしないなら
inoremap <expr> <Tab> getline(".") =~# '^\s*$' ? cc<Space><BS> : ''


>>554
getchar()を使うって手もある
0561名無しさん@お腹いっぱい。2012/11/11(日) 15:26:45.69
>>560
cc の前になにか忘れていないかい?
05625542012/11/11(日) 17:19:50.05
>>558

うおー ありがとうございます!
vimscript力が貧相なのでソースをみただけじゃ、分かりませんが、動きは理想にかなり近いです
拡張できる様に一行ずつよんで見ます
ありがとうございました
0563名無しさん@お腹いっぱい。2012/11/11(日) 23:24:15.74
>>556
タブのって、inoremap <Tab> <C-o>== じゃダメなん?
0564名無しさん@お腹いっぱい。2012/11/11(日) 23:26:09.89
あ、何も入力してない時だめやね…
0565名無しさん@お腹いっぱい。2012/11/13(火) 04:48:09.70
つけくわえるなら Vim って、化物語でいえば千石撫子なんだよね。
荒縄プレイをさししめすものであってロリではない。
0566名無しさん@お腹いっぱい。2012/11/13(火) 04:54:35.09
西尾作品と言えば玖渚はVim使いなのかな
彼女は機械語がデフォだけど
0567名無しさん@お腹いっぱい。2012/11/13(火) 07:00:30.03
>>566
あっぱ独自開発したエディタじゃないかな。
別に機械語でプログラミングするのってそんなに難しくないから
あそこはやっぱ中二病的には自分で開発したプログラミング言語って言って欲しかった。
0568名無しさん@お腹いっぱい。2012/11/15(木) 02:15:17.00
超絶初心者なんですが質問です。
windowsのgVimってC+xのデクリメントみたいにインクリメント出来ないんでしょうか?
なんか全選択されちゃいます
これが使えると、初心者でも@使うやつ(マクロ?)で面倒な処理がとてもスピーディー終われるので大変助かるのですが・・・
よろしく願いします
0569名無しさん@お腹いっぱい。2012/11/15(木) 02:29:03.83
Windowsならこっちで聞いた方がいいんじゃね。

vim Part4
http://anago.2ch.net/test/read.cgi/software/1314189326/
0570名無しさん@お腹いっぱい。2012/11/15(木) 02:33:13.75
迅速な回答ありがとうございます、そちらで質問させて頂きます
0571名無しさん@お腹いっぱい。2012/11/15(木) 03:42:13.55
>>568
:unmap <C-A>
:help CTRL-A

or

vimのインストールディレクトリにあるruntime/mswin.vimを編集するか
読み込まないようにする
0572名無しさん@お腹いっぱい。2012/11/15(木) 08:23:07.33
ありがとうございます!助かりました
0573名無しさん@お腹いっぱい。2012/11/15(木) 13:48:33.20
>>569
OSに依存しない質問で誘導するのややめね?
0574名無しさん@お腹いっぱい。2012/11/15(木) 13:58:06.52
ややめない。
OS依存かどうか質問者が切り分けできてるとは限らないから。
0575名無しさん@お腹いっぱい。2012/11/19(月) 05:03:28.07
.vimrcに
inoremap <C-i> <esc>
と書いて:wqしても反映されてないんだけどどうしてでしょ?
nnoremap j h
とか
nnoremap x dd
とかならいけるけど

あとほんとは
nnoremap <C-i> i
nnoremap <C-h> X
とかもしたいんだけど出来ない……
<>のせい?

Ubuntu 12.04LTS
0576名無しさん@お腹いっぱい。2012/11/19(月) 05:33:31.04
>>575
まずはコマンド:imap <C-i>で、本当に<C-i>が<Esc>になっているか確認。
なっていなかったらどこかで上書きされてると考えられる。
ちなみに<C-i>は<Tab>と同じ。
0577名無しさん@お腹いっぱい。2012/11/19(月) 05:53:07.93
<C-i>は<Tab>と同じもの
そのinoremapの後に<Tab>が何かにマップされてるのだと思う
0578名無しさん@お腹いっぱい。2012/11/19(月) 05:54:32.66
>>576と同じこと書いてた
スレ汚しすまん
0579名無しさん@お腹いっぱい。2012/11/19(月) 08:47:11.46
i <C-i> * <esc>と出ますね
上見たら>>194>>205さんと同じ症状の模様……

というかこれvim-tinyですね
0580名無しさん@お腹いっぱい。2012/11/19(月) 08:53:12.27
vim-gnome入れたらちゃんと反映されましたー
スレ汚しスマソ
0581名無しさん@お腹いっぱい。2012/11/19(月) 22:02:26.68
EOF以降にあるチルダ記号を別の記号に置き換える方法はありますか?
0582名無しさん@お腹いっぱい。2012/11/19(月) 22:12:37.62
ドザーはドザーの巣に帰れ。
■ このスレッドは過去ログ倉庫に格納されています