Vim Part14
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2007/03/19(月) 20:09:27http://www.vim.org/
前スレ
http://pc10.2ch.net/test/read.cgi/unix/1151423973/
0701名無しさん@お腹いっぱい。
2007/11/09(金) 14:38:36バグでもなんでもない。[とか]とかのヤバげな文字をエスケープしてないから。
:file \[a-b\]
とかすべし。
:file [a-b] はカレントディレクトリに名前がaかbのファイルかディレクトリがあったら
:file a とか :file b とか :file a b とかに展開・解釈される。
バッファ名が[a-b]になるのは、
たまたまカレントディレクトリにその手のファイルやディレクトリがなくて、
パターンが展開されずそのまま用いられただけ。
[b-a]はパターンとして不正だからエラーになる。
OK?
0702名無しさん@お腹いっぱい。
2007/11/10(土) 00:47:47<leader> + o でエラーが出ちゃうんですが・・・
0703名無しさん@お腹いっぱい。
2007/11/10(土) 02:31:16netrwもバグバグだしVimはなんかスクリプトの質が低いな
0704名無しさん@お腹いっぱい。
2007/11/10(土) 13:31:25バグあるらしいよ。
http://pc11.2ch.net/test/read.cgi/unix/1174302567/318-321
0705名無しさん@お腹いっぱい。
2007/11/10(土) 15:07:26ノシ
バージョン戻した。
0706名無しさん@お腹いっぱい。
2007/11/10(土) 15:11:40void func(
hoge, /*(i ) hoge */
);
下側のカッコが赤くハイライトされるが何故?
0707名無しさん@お腹いっぱい。
2007/11/10(土) 15:16:410708sakura
2007/11/10(土) 15:32:36色がおかしい。 TOhtmlでHTML表示した時に、黒が紫の色になっている。
今の所は例えば他のファイルタイプでは、色の違いは出ていない。どこ
が、おかしいのだろうか?
0709名無しさん@お腹いっぱい。
2007/11/10(土) 15:46:51やっぱりそうかー
結構前からずっとこうなんだけど治らないね
誰か英語で突っ込んでくれないかと他力本願
0710名無しさん@お腹いっぱい。
2007/11/10(土) 16:49:41> :file \[a-b\]
全然エスケープできてない
0711名無しさん@お腹いっぱい。
2007/11/10(土) 20:17:30さんくす。ガイシュツだったのね。
0712sakura
2007/11/11(日) 07:39:22LastChange:.が災いしていました。どうもお騒せしました。
0713名無しさん@お腹いっぱい。
2007/11/12(月) 21:28:18vimを使う時、ファイルの一覧見たり、shell を使ったりするのはどうやるのが普通ですか?
emacsでいう dired みたいな。
0714名無しさん@お腹いっぱい。
2007/11/12(月) 23:05:24左手にシェル端末
心にエクスプローラ
0715名無しさん@お腹いっぱい。
2007/11/12(月) 23:15:42左手に nvi
心に itojun
0717名無しさん@お腹いっぱい。
2007/11/12(月) 23:40:490719名無しさん@お腹いっぱい。
2007/11/13(火) 00:05:08:Exploreとか
:!の話をしてるのかと思った
0720名無しさん@お腹いっぱい。
2007/11/13(火) 00:05:34zsh+screen+vim(+LustyExplorer) でやってるよ。
快適。
0721名無しさん@お腹いっぱい。
2007/11/13(火) 00:10:39標準でもnetrwが付いてるし
でもvimでファイラやるのはなんか不安だから使ってない
0722713
2007/11/13(火) 00:54:55vimの拡張は、 scripts って呼ばれてるみたいですね。
そこにいろいろあると。
>>721
vimでファイラは不安というのは、リアルなお話しですね。
>>720
screenで画面分割してます?
もしそうなら、1つのウィンドウでshellを操作してて、
このファイル開きたいなと思った時に
簡単に別のウィンドウの方に開くことができるんでしょうか?
screenの話しになっちゃうかもしれませんが。
0723名無しさん@お腹いっぱい。
2007/11/13(火) 01:14:56こういうのあるみたいだけど使っていないからなんとも
ttp://www.wana.at/vimshell/
0724名無しさん@お腹いっぱい。
2007/11/13(火) 01:18:14ttp://d.hatena.ne.jp/tanakaBox/20071011/1192051594
0725名無しさん@お腹いっぱい。
2007/11/13(火) 01:49:20>>724
ありがとうございます。
vimshellってのは結構本格的なターミナルエミュレータだって書いてますね。
vimにパッチあてなきゃいけないのが、少し面倒な点でしょうか。
この作者が、「Pythonで似たようなのがあるが、機能が限られてるから作った」みたいなこと
書いてますけど、これが、>>724なのかもしれないですね。
まずは、実際にいろいろ使ってみようと思います。
0726名無しさん@お腹いっぱい。
2007/11/13(火) 01:52:46bashだとできるんだけど。
0727720
2007/11/13(火) 01:53:08画面分割はしてないです。切り替えだけ。
そういう場合はそのウィンドウで開いちゃうことが多いかな。
で、新しくウィンドウを生成して以降のシェル操作はそっちでやる。
0728名無しさん@お腹いっぱい。
2007/11/13(火) 02:14:45その方法で慣れるのも一つの方法ですね。
vimは起動が速いので(Emacsより)、その方法でもストレス無さそうです。
0729名無しさん@お腹いっぱい。
2007/11/13(火) 02:28:35C-zと予想。
0730名無しさん@お腹いっぱい。
2007/11/13(火) 02:37:240731名無しさん@お腹いっぱい。
2007/11/13(火) 12:28:03数秒起きに改行されるのは俺だけ?
0732名無しさん@お腹いっぱい。
2007/11/13(火) 12:46:510733名無しさん@お腹いっぱい。
2007/11/13(火) 23:20:05jvimなら出来てたなぁ(遠い目)
0734名無しさん@お腹いっぱい。
2007/11/13(火) 23:23:06と思ったが、gvimでできると面白いだろうなぁ
そういう遊び心が欲しい気も
0735名無しさん@お腹いっぱい。
2007/11/13(火) 23:30:590736名無しさん@お腹いっぱい。
2007/11/14(水) 09:13:12便利だとは思うんだが、指が完全に:eに慣れちゃっててどうも移行しきれない…
0737名無しさん@お腹いっぱい。
2007/11/14(水) 20:49:590738名無しさん@お腹いっぱい。
2007/11/14(水) 21:07:05体が覚えてるようなやつは、無理に乗り換えたりしないな。:e Make<Tab> とか。
どれだったかなーってだらだら探すときはfuzzyfinder使ってる。
0739名無しさん@お腹いっぱい。
2007/11/14(水) 22:11:41どのようにしたら実現できるでしょうか?
hogehoge
hogehoge
を
1.hogehoge
2.hogehoge
にするイメージです。
0740名無しさん@お腹いっぱい。
2007/11/14(水) 22:39:390741名無しさん@お腹いっぱい。
2007/11/14(水) 22:56:16http://vimwiki.net/?tips%2F91
0742名無しさん@お腹いっぱい。
2007/11/14(水) 23:30:15一行目だけ手で 1: を先頭に入れる
yw で 1 をレジスタに登録
j で二行目に移動して qq でキーボードマクロ q への登録スタート
I<C-R>": で 1: を行頭に挿入して <ESC> で抜ける
0<C-A> で行頭にもどって値をインクリメント
yiw でインクリメントした値をレジスタに登録して q でキーボードマクロ終了
これで一行分のキーボードマクロが出来ます
あとは Vjjj と必要な分だけヴィジュアルモードで選択して
:'<'>norm@q
と打てば選択範囲に q で登録されたキーボードマクロが実行されます
最初にレジスタに登録させる数字をかえればその次の数字から連番されます
<C-A> の前に 3 などを打てば 3 とばしに連番出来ます
これはどんな操作も範囲内に適用できるので汎用性の高い方法です
:'<'>norm@q は map しておいても良いかも知れません
また vis.vim を導入して
:'<'>B norm@q
とすることでブロック選択内にキーボードマクロを適用することも可能です
vis.vim
ttp://www.vim.org/scripts/script.php?script_id=1195
0743739
2007/11/14(水) 23:42:09レスありがとうございます。
とりあえず>>741で教えていただいたページを参考に以下のようにしてみました。
function! YankWithIncreNumber() range
let a = ""
let i = a:firstline
let c = 1
while i <= a:lastline
let a = a . c . "." . getline(i) . "\n"
let i = i + 1
let c = c + 1
endwhile
call setreg('*', a, "l")
silent execute "p"
endfunction
vmap <silent> <Leader>l :call YankWithIncreNumber()<CR>Pgvd
0744739
2007/11/14(水) 23:46:06はたしてこれがスマートな方法なのかどうかは不明・・・
もっとすっきりした方法があればご教授くださいorz
0745739
2007/11/14(水) 23:58:51実のところvimスクリプトの書き方があまりりよく分かってません。
できればわざわざレジストリに登録せずに連番付きのテキストに置き換えられるといいんですが。
あと、>>742の「ブロック選択内にキーボードマクロを適用」ってできるんですね。
知りませんでした。丁寧に説明していただいてありがとうございます。
0746739
2007/11/15(木) 01:42:38こいつを導入してみたところ、
http://www.vim.org/scripts/script.php?script_id=670
これ一行で実現できたかもです。
vmap <silent> <Leader>l :s/^/1\./<CR>gv^o^<C-v>:I<CR>j
とりあえずご報告まで。 以後自重します。お騒がせしました。
0747名無しさん@お腹いっぱい。
2007/11/15(木) 02:09:470748名無しさん@お腹いっぱい。
2007/11/15(木) 02:35:17:help <leader>
0749名無しさん@お腹いっぱい。
2007/11/15(木) 16:56:13カーソル下の単語の先頭の文字へ移動するには:
"_yiw
(bだと前の単語へ移動しちゃうかもしれないのでマップとかでは使えない)
0750名無しさん@お腹いっぱい。
2007/11/15(木) 18:00:38let = g:netrw_liststyle = 0 〜 3
で設定できる。
でもCygwinで使ってるとときどきclipboard云々というエラーが出る。
0751名無しさん@お腹いっぱい。
2007/11/15(木) 20:06:01もうどうにかして貰いたい
0752名無しさん@お腹いっぱい。
2007/11/15(木) 21:35:29どうにかしてください。
0753名無しさん@お腹いっぱい。
2007/11/15(木) 23:48:37'_' (アンダースコア) を単語の区切りとして認識させたいんですけど,
方法を知っている方いらっしゃいませんか?
0754名無しさん@お腹いっぱい。
2007/11/16(金) 00:33:59俺なら m のところにカーソル持っていって ct_ で置き換えるな。
0755名無しさん@お腹いっぱい。
2007/11/16(金) 01:19:13一番有名というか定番な拡張って何ですか?
(本体には採用予定ないんですよね?)
0757名無しさん@お腹いっぱい。
2007/11/16(金) 01:25:55camelcasemotion - Mappings for motion through CamelCaseWords and underscore_notation. : vim online
http://www.vim.org/scripts/script.php?script_id=1905
俺も ct_ でやるけど、これは4キー。
速さとタイプしやすさを総合すると、vで選択してcの方がいいかもという気はする。
0758名無しさん@お腹いっぱい。
2007/11/16(金) 01:50:16ありがとうございます.欲しかったのはまさにこの機能です.
v3wc (v3t_c) でも c3w (c3t_) でもあまり変わらないと思いますが,
自分は何となく v は目が疲れるような気がするので避けています.
0759名無しさん@お腹いっぱい。
2007/11/16(金) 02:28:56アウトラインてこういうの?
http://vimwiki.net/?tips%2F92
vimの正規表現は強力だから他のエディタがやってる正規表現ベースの
アウトラインならけっこう簡単に作れると思う。
0760名無しさん@お腹いっぱい。
2007/11/16(金) 08:20:18いや、そういう関数一覧とかいう感じのじゃなく
単なる階層構造というか、通常文章での章立てみたいなのを扱いたいんですよね
秀丸やWZなんかについてるアレです
ttp://hide.maruo.co.jp/software/hidemaru7/outline.html
ここの「通常のテキスト」みたいな奴ですね
とりあえずwww.vim.orgからTVOってのを落としてきましたが
オール英語で使い方を模索中でござる
他に遣っている方いますかね?
0761名無しさん@お腹いっぱい。
2007/11/16(金) 09:25:17それをtaglist.vimで参照しつつvimで論文を書いたことある。
パブリッシュや印刷プレビューなんかはMakefileに書いて一発呼出しすればさらに便利。
まわりが長文だけはemacsとか、macやwinを使う中で、なかば意地で書いた環境だったけどわりと使えたな。
0762名無しさん@お腹いっぱい。
2007/11/17(土) 05:19:47これはvimに欲しいと思った
0763名無しさん@お腹いっぱい。
2007/11/17(土) 05:26:20作者にpatch送りました。version 7.1.4で取り込まれた様子
0764名無しさん@お腹いっぱい。
2007/11/17(土) 06:24:190765名無しさん@お腹いっぱい。
2007/11/17(土) 06:49:21thx.
でも、bufexplorer.vimの改行コードが dos(CRLF)に変わっとる。
そのお蔭か、Windows上では問題ないっぽいけど、Linux上のvim(or gvim)でエラーがでる。
:se ff=unix
:w
したらエラー出なくなる模様
0766名無しさん@お腹いっぱい。
2007/11/17(土) 11:57:58ありがとう
もの凄く感謝
2バージョン放置されていたところを見るとやっぱり空白パスなんて使っている人居ないんだろうね・・・
0767名無しさん@お腹いっぱい。
2007/11/17(土) 23:52:48次はがんばれ
0768名無しさん@お腹いっぱい。
2007/11/18(日) 00:00:220769名無しさん@お腹いっぱい。
2007/11/18(日) 00:38:13っttp://gugurekasu.com/
0770名無しさん@お腹いっぱい。
2007/11/18(日) 01:33:05けなげに、ごくろう!
ありがとうございました。
0771名無しさん@お腹いっぱい。
2007/11/18(日) 09:20:23なんかスゲー
0772名無しさん@お腹いっぱい。
2007/11/19(月) 15:40:31ttp://www.jbrowse.com/text/bmbk.shtml
ver7以降も作ってくれるといいのになぁ
0773名無しさん@お腹いっぱい。
2007/11/19(月) 17:23:04半分以上は宣言とか、登録とかで、実装部はそんなにないし。いや、ちらっとしか見てないけど。
0774名無しさん@お腹いっぱい。
2007/11/19(月) 22:38:310775名無しさん@お腹いっぱい。
2007/11/20(火) 00:25:180776名無しさん@お腹いっぱい。
2007/11/21(水) 14:44:25^jでEnterとかはうまくいくのに、ctrl+[だけ動作がヘンです。対処法があれば教えてください。
0777名無しさん@お腹いっぱい。
2007/11/21(水) 15:04:440778776
2007/11/21(水) 15:17:36キーボード配列というヒントありがとうございました。
0779名無しさん@お腹いっぱい。
2007/11/22(木) 00:30:38ヘルプが開いてしまいます。。F1でヘルプを開くのをとめたいのですが
どうすればよいでしょうか・・・。:hはよく使います。おねがいます。
0780名無しさん@お腹いっぱい。
2007/11/22(木) 00:41:17:help <Nop>
0781名無しさん@お腹いっぱい。
2007/11/22(木) 12:09:00例えば検索キーがword1、word2の二つあったとすると、
・nを押したらカーソル位置以降のword1を検索
・何かのキーを押したらカーソル位置以降のword2を検索
という風にしたいのです。
よろしくお願いします。
0782名無しさん@お腹いっぱい。
2007/11/22(木) 12:34:360783名無しさん@お腹いっぱい。
2007/11/22(木) 13:15:090784名無しさん@お腹いっぱい。
2007/11/22(木) 14:25:13helpで
> |:history|によって出力される{num}番目のエントリを、再
> 度実行するための":H {num}"というコマンドを定義する。
> command -nargs=1 H execute histget("cmd",0+<args>)
というのが紹介されているので、これをいじって
command -nargs=1 S execute "/" . histget("search",0-<args>)
とすれば:S のあとに入力された数だけ直前の検索語を検索できる
ちなみに:S 1は現在の語なので :S 2 で一つ前ね
:S のとき : S 2 と動作するように改良すればトグル動作にできる
プラグインだとmultiplesearchプラグインなら検索語を色分けできる
0785名無しさん@お腹いっぱい。
2007/11/22(木) 14:26:36:history search
histget()
あたりのhelpよめばほかに何かいいものが浮かぶかもしれない
0786名無しさん@お腹いっぱい。
2007/11/22(木) 22:26:08ありがとうございます!できました!
0787名無しさん@お腹いっぱい。
2007/11/23(金) 20:33:28がよくわからん。だれか教えてけれ
:help //; でドキュメントは見れるんだけどな
0788名無しさん@お腹いっぱい。
2007/11/23(金) 23:19:41何が分からないのかがよくわかんないんだけど ";"のこと?
範囲指定の","と";"の違いですか?もしそうなら cmdline-rangesを参考に。
そうじゃなければスマソ。
0789名無しさん@お腹いっぱい。
2007/11/24(土) 14:25:41http://ripjohn.net/program/vim/template.zip
http://ripjohn.net/program/vim/index.html#template
内容:
・>>354みたいに、テンプレートの展開には短縮入力機能を使います。
・ただ:iabbrevコマンドは特殊文字の入力がしんどいので(<CR>とか<lt>みたいに)、
文字列値の式を引数にとって、変換して:iabbrevに渡すコマンドを用意しました。
・あとは、プレースホルダに飛ぶコマンド(<S-CR>, <C-CR>)と置き換えるコマンド(<CR>)だけです。
・プレースホルダには、デフォルトで入力される文字列を指定できます。
例:
「:StringAbbrLocal fopen] 'fopen(<+fname+>, <+mode:"r"+>)<++>'」で登録。
挿入モードで「fopen]」と打って<Esc>すると上記の通り展開される。
<S-CR>でひとつめのプレースホルダに移動、<CR>で入力開始。
再度<S-CR>でふたつ目のプレースホルダに。<CR>で「"r"」が挿入されて入力開始。
再々度<S-CR>で最後のプレースホルダ「<++>」が削除され、入力開始。
簡素ですが、コード書きやマークアップ文書の編集には大体間に合うんじゃないかと思います。
ご意見いただければ幸いです。
0790名無しさん@お腹いっぱい。
2007/11/24(土) 14:34:56折り畳みで間に合うんじゃないですか? cf. :help folding
例:
vim: set foldmethod=marker :
1章 供犠 {{{
1.1 供犠の機能 {{{
ほげほげ
}}}
1.2 供犠の危機 {{{
うんたらかんたら
}}}
}}}
2章 オイディプスと贖罪のいけにえ {{{
ふーばー
}}}
って感じで。
foldmethod=exprで、foldexprに判別式を設定すれば
もうちょっとスマートに書けます。
0791781
2007/11/24(土) 15:17:18>>781
シーケンシャルでなくランダムアクセスでやりたいです。
Googleツールバーのように、複数のキーワードのボタンが勝手に出来て、
好きなのを押せばそのキーワードでページ内検索できるのがすごく便利だなと思ったので。
mで登録、`で移動と同様のやり方で検索キーを使い分けられればベストです。
>>784
ありがとうございます!これでほぼ解決できました。
:S2などでキーを切り替えてn、Nで次々に飛べるのでやみつきです。
0792名無しさん@お腹いっぱい。
2007/11/25(日) 22:59:02これどうよ
検索履歴10個を候補にステータスラインに出す
/コマンドって履歴をステータスラインに出すほうがいいよね
let s:size = 10
function! s:S_completionList(A,L,P)
return join(map(range(1,s:size),'histget("search",0-v:val)'),"\n")
endfunction
command! -complete=custom,s:S_completionList -nargs=1 S exec "/".<q-args>
0793名無しさん@お腹いっぱい。
2007/11/27(火) 21:37:00カーソル移動をホームポジションに割り当てたところで、あるいはwやbを用意したところで
エスケープキーを押す必要があると、かえって使いにくいと思わないですか?
Ctrl+M や Ctrl+H みたいなことができるなら、ギリギリまでホームポジションに手を置いたまま作業ができそうですが
いちいちEscまで手を伸ばすのは結構しんどいと思うのですが・・・
つまらない事かもしれませんが、Vimをバリバリ使っている人がどう思ってるのか聞きたいです。
0794名無しさん@お腹いっぱい。
2007/11/27(火) 22:09:260795名無しさん@お腹いっぱい。
2007/11/27(火) 22:17:580796名無しさん@お腹いっぱい。
2007/11/27(火) 22:27:130797名無しさん@お腹いっぱい。
2007/11/27(火) 22:27:30一応ついてるキーボードだけど
0798名無しさん@お腹いっぱい。
2007/11/27(火) 22:40:20nnoremap <M-i> vib
vnoremap <M-i> ib
" alt + shift + i 連打で {} で囲まれた範囲を拡大選択
nnoremap <M-I> viB
vnoremap <M-I> iB
いまこういう設定をしているんだけどこれを <M-i> 連打するだけで
内側からテキストオブジェクトの範囲を拡大して選択するいいアイディアって無いものだろうか
function test()
{
alert("test");
}
文字列 test の中にカーソルがある時に <M-i> を一回押すと test が選択されて
もう一回 <M-i> を押すと今度は "test" が選択されてもう一度押すと alert("test"); が選択される感じ
0799793
2007/11/27(火) 23:14:41こんな便利なキーがあったとは・・・orz
0800名無しさん@お腹いっぱい。
2007/11/29(木) 07:09:24ホームポジションが崩れるという意識が無い。
■ このスレッドは過去ログ倉庫に格納されています