Vim Part14at UNIX
Vim Part14 - 暇つぶし2ch641:名無しさん@お腹いっぱい。
07/10/05 01:43:33
すいませーん
置き換えでマッチした行を全て削除する時ってどうやるんでしたっけ?

%s /hoge//

help: replace
help: search-replace

見てもググっても見付けられなかった orz


642:641
07/10/05 01:56:52
確か %s /hoge$/d か %s /hoge$//d でいけたと思ったんだけどなぁ
何故かこれをやると

foo foo hoge

foo foo d

になってしまうよぉ orz

643:641
07/10/05 02:01:32
思い出した!!!!!!!!!!!!

%sが余計だった

:/hoge$/d

でした!!!
メモ残しとこっと。

644:名無しさん@お腹いっぱい。
07/10/05 02:07:46
ここは>>641のメモ帳になりました

645:641
07/10/05 02:18:42
>>643
をい俺!
そのメモも間違ってんじゃねぇかボケ!

:g/hoge$/d

ったく orz

646:名無しさん@お腹いっぱい。
07/10/05 04:38:18
2行を空白入れずに1行にするのに
Jxってやってるけど
1ストロークでできないのかな

647:名無しさん@お腹いっぱい。
07/10/05 07:38:54
>>638
マウス操作でどのディレクトリの下をgrepするか指定できるとか
(コマンドラインでだと、あるディレクトリの下にどういうファイルやディレクトリがあるか見えにくい。。数が膨大だと特に)
grep結果は新規ウィンドウで表示されてマウスクリックでさらにタグジャンプ先が新規ウィンドウで表示とか

648:名無しさん@お腹いっぱい。
07/10/05 08:08:42
マウスはVimでは考えてないから置いとくとして、
新規バッファで開くとかは簡単にできるだろ
ファイル数が多いって言うのも、わからんしやな

649:名無しさん@お腹いっぱい。
07/10/05 09:21:24
>>646
gJ

650:名無しさん@お腹いっぱい。
07/10/05 09:21:45
grepはEmEditorとサクラがいいと思うな。
デフォルトで今開いているファイルのディレクトリが対象になるし。
EmEditorは除外ファイルも指定できるし、サクラは検索結果バッファに
検索条件も残してくれるのがうれしい。
vimはquickfixウィンドウが1つしかないのが致命的。

どのディレクトリにどんなファイルがあるか分からない場合は、Unixなら
シェルに降りてコマンド使えばいいけど、シェルとvim間でコピペしたくなる。

651:名無しさん@お腹いっぱい。
07/10/05 09:44:05
コピペしたらいいじゃねぇーか

652:名無しさん@お腹いっぱい。
07/10/05 10:00:54
マウス使ってか?

653:名無しさん@お腹いっぱい。
07/10/05 10:17:02
>>650
lgrep && lopen

654:名無しさん@お腹いっぱい。
07/10/05 10:20:25
>>653
それ使いづらいんだけど。

655:名無しさん@お腹いっぱい。
07/10/05 11:36:39
使いづらいなら使いやすいようにするか、他に使いやすい物を使えよ。


656:名無しさん@お腹いっぱい。
07/10/05 21:29:35
別に使いにくいのに使ってるなんて言ってないだろ!

657:名無しさん@お腹いっぱい。
07/10/06 00:31:35
どうでもいい。黙れ。、

658:名無しさん@お腹いっぱい。
07/10/06 01:16:34
わかったよ、黙るよ!

659:名無しさん@お腹いっぱい。
07/10/06 01:29:02
拡張子毎にタブ幅を変えるのってどうすればいいんでしょうか?
~/.vimrc.c, ~/.vimrc.rb
ファイルを作成する。

~/.vimrc.c 内に
set ts=4 sw=4 sts=0
~/.vimrc.rb 内に
set ts=2 sw=2 sts=0
をそれぞれ書き込む。ということはやりました。

~/.vimrc 内に
set fexrc
を書き込んでも、そんな設定ないよ。と言われてしまいます。

OS:CentOS 5.0 VIM:7.0
です。どなたかお助けをお願いします。

660:名無しさん@お腹いっぱい。
07/10/06 03:02:17
>>659
~/.vimrc
autocmd BufReadCmd *.rb setlocal ts=2 sw=2 sts=0

詳細は
:he autocmd
:he autocmd-events

もしくは >>610

661:名無しさん@お腹いっぱい。
07/10/07 11:07:14
GetLatestVimScriptsって使ってる人いますか?
なんか実行してもひとつずつしかDLされなくて、
何度も:GLVSしなきゃならないんですが、そういう仕様なんですかね?

662:名無しさん@お腹いっぱい。
07/10/08 18:37:33
:!grep func_name ./*.c ./*ch > grep.txt
:tabnew grep.txt
をキー一つで実行するにはどうしたらいいですか

663:名無しさん@お腹いっぱい。
07/10/08 19:54:10
バインドしろ

664:名無しさん@お腹いっぱい。
07/10/08 22:15:15
kwsk

665:名無しさん@お腹いっぱい。
07/10/09 13:36:04
>>662
vim7専用

カーソル位置の単語をカレントディレクトリ以下(サブディレクトリ以下も)の
.cpp .c .h ファイルから検索する。
検索終了するとカレントエラーリストWindowを開く。

noremap K :vimgrep /\<<C-R><C-W>\>/ **/*.{cpp,c,h}<CR>:copen<CR>

あとは :cclose :cnew :cold を使いこなせば不便ではなくなると思う。


自分で検索文字を入力したい時はこんな感じでどうでしょうか。
noremap _g :vimgrep // **/*.{cpp,c,h}<C-B><RIGHT><RIGHT><RIGHT><RIGHT><RIGHT><RIGHT><RIGHT><RIGHT><RIGHT>

この場合は後で :copen すればカレントエラーリスト出てきます。

666:名無しさん@お腹いっぱい。
07/10/09 19:00:44
>>665
レスありがとうございます。
>noremap K :vimgrep /\<<C-R><C-W>\>/ **/*.{cpp,c,h}<CR>:copen<CR>
これを実行すると検索元のファイル表示が消えるのですが
検索元のファイルは表示したままgrep結果を新しいタブもしくはウィンドウで表示するにはどうしたらいいですか

667:名無しさん@お腹いっぱい。
07/10/09 20:42:53
>>666 ダミアンダミアン
ctrl-o で戻れるけど、それじゃダメ?

668:名無しさん@お腹いっぱい。
07/10/09 21:03:57
>>667
レスありがとうございます。
c

669:名無しさん@お腹いっぱい。
07/10/09 21:06:04
>>667
レスありがとうございます。
C-oで戻れるとは知りませんでした。新しいタブかウィンドウで表示されるともっと便利だけど。。

670:名無しさん@お腹いっぱい。
07/10/09 23:30:57
>>669
そろそろ自分で調べれ
それでも分からんかったら
どう調べてどうやってどうダメだったか報告しれ

671:名無しさん@お腹いっぱい。
07/10/14 15:29:09
grepとタグジャンプが満足に行えないvimは糞w

672:名無しさん@お腹いっぱい。
07/10/14 15:40:45
すぐ芝植えたがる奴が増えたな

673:名無しさん@お腹いっぱい。
07/10/14 19:18:47
オレも秀丸から移行してきた当初は、quickfix が使いにくかった。
まっ、慣れれば問題ないよ。
素の grep だと機能が足りないと思う場合は、別の grep を使って、
結果だけ読み込ませてしまえばいいわけだし。

674:名無しさん@お腹いっぱい。
07/10/19 14:15:24
quickfixはユーザーディレクトリ( .vimfile/)にftplugin/qf.vim つくって

setlocal cursorline

nnoremap <buffer> q :cclose<CR>
nnoremap <buffer> H :colder<CR>
nnoremap <buffer> L :cnewer<CR>

とか、バッファ限定でmap増やしたりすると多分楽だと思う

他にいい方法あるか



675:名無しさん@お腹いっぱい。
07/10/26 13:06:02
ktermやmltermでエスケープシーケンスを含むキーをvmapすると
正常に認識されないね。
nnoremap <F8> :hoge はOKでも
vnoremap <F8> :hoge はNG

676:名無しさん@お腹いっぱい。
07/10/30 00:20:39
vimのプラグインもyumなんかと同じようにコマンドでネットワークから
自動インストールされるようにできないもんだろうか
あと更新も

677:名無しさん@お腹いっぱい。
07/10/30 11:11:25
一応
:h getscript
というものはあるようだが…

678:名無しさん@お腹いっぱい。
07/10/30 18:30:05
getscriptとvimballはなんか微妙

679:名無しさん@お腹いっぱい。
07/10/31 15:23:48
viでemacsのときの癖でC-x c か C-x s と入力したら
-- ^X mode (^E^Y^L^J^F^I^K^D^V^N^P)
と表示されたまま入力を受け付けてくれなくなったのだけれど
どうすればいいですか

680:名無しさん@お腹いっぱい。
07/10/31 15:35:43
大抵の場合はEscかC-cでキャンセルできますよ。
ってゆーか入力を受け付けなくなったのならC-s押したんじゃね?
それならC-q

681:名無しさん@お腹いっぱい。
07/10/31 16:27:45
C-qでいけました!ありがとうございます

682:名無しさん@お腹いっぱい。
07/10/31 17:24:28
C-c, C-z, C-s, C-q は定番だな

コマンドラインで $ や * や ? が変な風になるとかも

683:名無しさん@お腹いっぱい。
07/10/31 20:57:17
C-pでの補完の動作についてなのですが、
デフォルトだとメソッドのアクセサ('.','->')で区切られて補完されるようになっていますが、
これを回避する方法ってありますか?

$this->hoge->huga

を一気に補完リストに表示してほしいです。

684:名無しさん@お腹いっぱい。
07/10/31 21:26:38
>>683
iskeywordに('.','->')を追加する。

685:名無しさん@お腹いっぱい。
07/10/31 23:31:53
>>684
返事が遅れてすみません。
助かりました。ありがとうございます。

686:名無しさん@お腹いっぱい。
07/11/01 10:19:02
getscript書いといた。
URLリンク(vimwiki.net)
:AutoInstall:はできるものが限られるから微妙かもしれないけど
(というかmru.vimで試したらできなかった)
ダウンロードするだけならけっこう便利。

687:名無しさん@お腹いっぱい。
07/11/01 11:11:28
>>686


688:名無しさん@お腹いっぱい。
07/11/02 07:15:35
500行から1000行ぐらいのEUC-JPで日本語混じりの文章を保存しようとすると時折失敗します。
行末にスペースやら空行やらを追加すると保存できたりするんですが、
一文字追加するだけで良かったり数文字追加しなきゃ行けなかったりで謎な感じです。
機種依存な文字は意識的に使っては居ない筈なんだけど、
他にこういう症状が出ている人いますか?

WindowsXPSP2 Kaoriya版VIM7.1+同iconv1.10
試した文字コード
cp932 OK
UTF-8 OK
EUC-JP 時々エラー
EUC-JISX0213 EUC-JPでエラーの時はこっちでもエラーが出ます


689:名無しさん@お腹いっぱい。
07/11/02 15:17:29
どういうエラーが出るんだよ、と

690:KoRoN@Vim%Chalice ◆8XALICEsdk
07/11/02 15:24:44
>>688
できたらその保存に失敗するテキストを私に送ってください。

691:名無しさん@お腹いっぱい。
07/11/04 20:29:53
Vim7からついたタブですが、とりあえず起動オプションで
「 -p --remote-tab-silent」とかで追加できるのはわかったんですが
これを.vimrc側に記述する方法ってありませんか?
とりあえず何でもかんでもタブ追加で開きたいんですが

692:名無しさん@お腹いっぱい。
07/11/04 21:02:55
>>691
つレジストリ

693:名無しさん@お腹いっぱい。
07/11/05 06:36:47
>>689
変換に失敗しましたってでまする

>>690
了解しました
送信しても問題のない文書で
エラーが再現したときに送ります。

694:名無しさん@お腹いっぱい。
07/11/05 09:42:09
>>692
そこをなんとか設定ファイル側で、、、
ってわけにはいかないのかなぁ
レジストリいじるのは、なんか負けたような気がするw
でもやってみます、アリガト

695:名無しさん@お腹いっぱい。
07/11/05 12:33:37
環境はWindows XP、vim7.1です。
_gvimrcに'colorscheme default'と書くと色がおかしくなります。たとえば_vimrc内の
'set'や'map'といった単語が黄色に色づけされます。で、ここでコマンドラインから
:colorscheme default<CR>とすると元に戻ります。

_gvimrcに'colorscheme default'と書く必要はないのでどうでもいいことなのですが、
なぜそうなるかが分からないので。ご存知の方いらっしゃるでしょうか?

696:名無しさん@お腹いっぱい。
07/11/05 20:12:33
:help 'background'

697:名無しさん@お腹いっぱい。
07/11/05 22:43:51
>>696
ども。bgがdarkに設定されているのか。でもよく分からないんですが
_gvimrcに'colorscheme default'を設定後に :verbose se bg とすると
"Last set from $VIMRUNTIME\colors\default.vim"と表示されます。
で、そのdefault.vimを見ると 'set bg&' とあるのですね。つまりデフォルト
の値である'dark'にここで設定されていると。
でも gvim -u NONE -U NONE で起動したときはbg=lightなのです。
これは???よく分かりません><


698:名無しさん@お腹いっぱい。
07/11/05 23:58:02
1. backgroundのデフォルトは"dark" (dosだから?)
2. :colorscheme default -> :set bg& ("dark"に設定される)
3. _gvimrc読み込み後(正確にはGUI窓を実際に開いたとき)backgroundのデフォルトが"light"に設定される。
   このとき、:hi Normalの背景色を見てbgの現在値も変更される。
   ただし、その前に一度でもbgが設定されていたなら変更しない。
   つまり、bg=dark かつ デフォルト=light な状態になる。
4. :colorscheme default -> :set bg& (こんどは"light")

699:名無しさん@お腹いっぱい。
07/11/06 11:33:44
>>698
> ただし、その前に一度でもbgが設定されていたなら変更しない。

ここがポイントだったみたいです。default.vimの'se bg&'をコメントアウト、
あるいは'se bg=light'としたところ、いずれもlightに設定されました。自分用の
colorschemeは$HOME\vimfiles\colorsにつくるのがいいみたいですね。
あとoptions.txtとsyntax.txtの該当部分も参考になりました。
ありがとうございました。


700:名無しさん@お腹いっぱい。
07/11/09 12:00:14
Vim 7.1 patches 145で、
:file [b-a]
とかやると、バッファの名前は変わるが、
E16 Invalid Rangeが出る。[a-b]だと出ない。
-の前後で、アルファベットが逆順だと出るみたい。これってバグ?

FuzzyFinder.vimって便利なプラグイン使わせてもらってるんだけど、
1.4.1からこれのせいで、エラーがでる。まぁ、-の前後にスペース入れちゃえば、
問題ないから、たいしたことではないのだけど。

701:名無しさん@お腹いっぱい。
07/11/09 14:38:36
>>700
バグでもなんでもない。[とか]とかのヤバげな文字をエスケープしてないから。
:file \[a-b\]
とかすべし。

:file [a-b] はカレントディレクトリに名前がaかbのファイルかディレクトリがあったら
:file a とか :file b とか :file a b とかに展開・解釈される。
バッファ名が[a-b]になるのは、
たまたまカレントディレクトリにその手のファイルやディレクトリがなくて、
パターンが展開されずそのまま用いられただけ。
[b-a]はパターンとして不正だからエラーになる。
OK?

702:名無しさん@お腹いっぱい。
07/11/10 00:47:47
Vim 7.1 の changelog モード使ってる方いらっしゃいますか?
<leader> + o でエラーが出ちゃうんですが・・・

703:名無しさん@お腹いっぱい。
07/11/10 02:31:16
bufexplorerで空白の入ったパスのファイルを開くと挙動がおかしくなるんだけどオレだけ?
netrwもバグバグだしVimはなんかスクリプトの質が低いな

704:名無しさん@お腹いっぱい。
07/11/10 13:31:25
>>702
バグあるらしいよ。
スレリンク(unix板:318-321番)

705:名無しさん@お腹いっぱい。
07/11/10 15:07:26
>>703
ノシ

バージョン戻した。

706:名無しさん@お腹いっぱい。
07/11/10 15:11:40
WinXP Vim7.1で、拡張子c。

void func(
hoge, /*(i ) hoge */
);

下側のカッコが赤くハイライトされるが何故?

707:名無しさん@お腹いっぱい。
07/11/10 15:16:41
ならないが

708:sakura
07/11/10 15:32:36
GVim 7.0 kaoriya版を使っています。TOhtmlでset ft=memoとした時の
色がおかしい。 TOhtmlでHTML表示した時に、黒が紫の色になっている。
今の所は例えば他のファイルタイプでは、色の違いは出ていない。どこ
が、おかしいのだろうか?

709:名無しさん@お腹いっぱい。
07/11/10 15:46:51
>>705
やっぱりそうかー
結構前からずっとこうなんだけど治らないね
誰か英語で突っ込んでくれないかと他力本願

710:名無しさん@お腹いっぱい。
07/11/10 16:49:41
>>701
> :file \[a-b\]
全然エスケープできてない

711:名無しさん@お腹いっぱい。
07/11/10 20:17:30
>>704
さんくす。ガイシュツだったのね。

712:sakura
07/11/11 07:39:22
恥ずかしながら、自己解決しました。原因はautodate.vimの影響で、
LastChange:.が災いしていました。どうもお騒せしました。


713:名無しさん@お腹いっぱい。
07/11/12 21:28:18
vim初心者です。
vimを使う時、ファイルの一覧見たり、shell を使ったりするのはどうやるのが普通ですか?
emacsでいう dired みたいな。

714:名無しさん@お腹いっぱい。
07/11/12 23:05:24
右手にgvim
左手にシェル端末
心にエクスプローラ

715:名無しさん@お腹いっぱい。
07/11/12 23:15:42
右手に NetBSD
左手に nvi
心に itojun

716:713
07/11/12 23:38:08
>>714
ありがとうございます。

>>715
泣けてきます。

puttyなどのコンソールでの使用だったら、どうやります?

717:名無しさん@お腹いっぱい。
07/11/12 23:40:49
よく判らないけど screen とか使えないんだっけ?

718:713
07/11/12 23:55:52
>>717
screen も一つの方法だと思ったんですが、
実際、そうやってる人がどれくらいいるんだろうと思いました。

719:名無しさん@お腹いっぱい。
07/11/13 00:05:08
え?話の流れて気に
:Exploreとか
:!の話をしてるのかと思った

720:名無しさん@お腹いっぱい。
07/11/13 00:05:34
>>718
zsh+screen+vim(+LustyExplorer) でやってるよ。
快適。

721:名無しさん@お腹いっぱい。
07/11/13 00:10:39
ファイラみたいなやつならNERD treeとかいろいろあるね
標準でもnetrwが付いてるし
でもvimでファイラやるのはなんか不安だから使ってない

722:713
07/11/13 00:54:55
みなさんありがとうございます。

vimの拡張は、 scripts って呼ばれてるみたいですね。
そこにいろいろあると。

>>721
vimでファイラは不安というのは、リアルなお話しですね。
>>720
screenで画面分割してます?
もしそうなら、1つのウィンドウでshellを操作してて、
このファイル開きたいなと思った時に
簡単に別のウィンドウの方に開くことができるんでしょうか?
screenの話しになっちゃうかもしれませんが。

723:名無しさん@お腹いっぱい。
07/11/13 01:14:56
>>722
こういうのあるみたいだけど使っていないからなんとも
URLリンク(www.wana.at)

724:名無しさん@お腹いっぱい。
07/11/13 01:18:14
Python があるならこういうのもあるみたい
URLリンク(d.hatena.ne.jp)

725:名無しさん@お腹いっぱい。
07/11/13 01:49:20
>>723
>>724
ありがとうございます。

vimshellってのは結構本格的なターミナルエミュレータだって書いてますね。
vimにパッチあてなきゃいけないのが、少し面倒な点でしょうか。

この作者が、「Pythonで似たようなのがあるが、機能が限られてるから作った」みたいなこと
書いてますけど、これが、>>724なのかもしれないですね。

まずは、実際にいろいろ使ってみようと思います。

726:名無しさん@お腹いっぱい。
07/11/13 01:52:46
vimshellでzshを使うとタブで補完ができないのはなんでだろ?
bashだとできるんだけど。

727:720
07/11/13 01:53:08
>>722
画面分割はしてないです。切り替えだけ。
そういう場合はそのウィンドウで開いちゃうことが多いかな。
で、新しくウィンドウを生成して以降のシェル操作はそっちでやる。

728:名無しさん@お腹いっぱい。
07/11/13 02:14:45
>>727
その方法で慣れるのも一つの方法ですね。
vimは起動が速いので(Emacsより)、その方法でもストレス無さそうです。

729:名無しさん@お腹いっぱい。
07/11/13 02:28:35
なんだかんだ言ってほとんどのやつが一番多くやっているのが
C-zと予想。

730:名無しさん@お腹いっぱい。
07/11/13 02:37:24
:sh していたらどこまでネストしているのか判らなくなったりします

731:名無しさん@お腹いっぱい。
07/11/13 12:28:03
vimshell 試してみたんだけど、gvim 中で bash 起動すると
数秒起きに改行されるのは俺だけ?

732:名無しさん@お腹いっぱい。
07/11/13 12:46:51
gvimとかで、背景に画像貼ったりできないの?

733:名無しさん@お腹いっぱい。
07/11/13 23:20:05
>>732
jvimなら出来てたなぁ(遠い目)

734:名無しさん@お腹いっぱい。
07/11/13 23:23:06
まぁ画像を背景にできるターミナルソフトでvimを使えばいいじゃない
と思ったが、gvimでできると面白いだろうなぁ
そういう遊び心が欲しい気も

735:名無しさん@お腹いっぱい。
07/11/13 23:30:59
gvim入れてない・・

736:名無しさん@お腹いっぱい。
07/11/14 09:13:12
FuzzyFinderとか使ってる人はもうファイルを開くのは全部それでやってるの?
便利だとは思うんだが、指が完全に:eに慣れちゃっててどうも移行しきれない…

737:名無しさん@お腹いっぱい。
07/11/14 20:49:59
bufexplorer バージョンアップしても相変わらず空白パスを扱えないな

738:名無しさん@お腹いっぱい。
07/11/14 21:07:05
>>736
体が覚えてるようなやつは、無理に乗り換えたりしないな。:e Make<Tab> とか。
どれだったかなーってだらだら探すときはfuzzyfinder使ってる。

739:名無しさん@お腹いっぱい。
07/11/14 22:11:41
選択範囲の各行頭に連番を挿入してリストを作れるようにしたいのですが、
どのようにしたら実現できるでしょうか?
hogehoge
hogehoge

1.hogehoge
2.hogehoge
にするイメージです。

740:名無しさん@お腹いっぱい。
07/11/14 22:39:39
>>737 作者に教えたれよ

741:名無しさん@お腹いっぱい。
07/11/14 22:56:16
>>739
URLリンク(vimwiki.net)

742:名無しさん@お腹いっぱい。
07/11/14 23:30:15
>>738
一行目だけ手で 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
URLリンク(www.vim.org)

743:739
07/11/14 23:42:09
>>741-742
レスありがとうございます。
とりあえず>>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

744:739
07/11/14 23:46:06
これで一応期待した動作にはなったのですが、
はたしてこれがスマートな方法なのかどうかは不明・・・
もっとすっきりした方法があればご教授くださいorz

745:739
07/11/14 23:58:51
すみません。>>743で「silent execute "p"」の部分は消し忘れでした。不要です。
実のところvimスクリプトの書き方があまりりよく分かってません。
できればわざわざレジストリに登録せずに連番付きのテキストに置き換えられるといいんですが。

あと、>>742の「ブロック選択内にキーボードマクロを適用」ってできるんですね。
知りませんでした。丁寧に説明していただいてありがとうございます。

746:739
07/11/15 01:42:38
何度も連投ごめんなさい。
こいつを導入してみたところ、
URLリンク(www.vim.org)
これ一行で実現できたかもです。
vmap <silent> <Leader>l :s/^/1\./<CR>gv^o^<C-v>:I<CR>j
とりあえずご報告まで。 以後自重します。お騒がせしました。

747:名無しさん@お腹いっぱい。
07/11/15 02:09:47
<silent> <Leader> って何?

748:名無しさん@お腹いっぱい。
07/11/15 02:35:17
:help <silent>
:help <leader>

749:名無しさん@お腹いっぱい。
07/11/15 16:56:13
プチtip
カーソル下の単語の先頭の文字へ移動するには:
"_yiw
(bだと前の単語へ移動しちゃうかもしれないのでマップとかでは使えない)

750:名無しさん@お腹いっぱい。
07/11/15 18:00:38
netrw(:Explorer)はツリー表示もできる。iを押すと4種類の表示形式を切り替えられる。
let = g:netrw_liststyle = 0 ~ 3
で設定できる。
でもCygwinで使ってるとときどきclipboard云々というエラーが出る。

751:名無しさん@お腹いっぱい。
07/11/15 20:06:01
というか netrw もバグバグ
もうどうにかして貰いたい

752:名無しさん@お腹いっぱい。
07/11/15 21:35:29
>>751
どうにかしてください。

753:名無しさん@お腹いっぱい。
07/11/15 23:48:37
"my_function()" みたいな語句で "my" だけを修正するために,
'_' (アンダースコア) を単語の区切りとして認識させたいんですけど,
方法を知っている方いらっしゃいませんか?

754:名無しさん@お腹いっぱい。
07/11/16 00:33:59
>>753
俺なら m のところにカーソル持っていって ct_ で置き換えるな。

755:名無しさん@お腹いっぱい。
07/11/16 01:19:13
vimでアウトラインとかやりたい時
一番有名というか定番な拡張って何ですか?
(本体には採用予定ないんですよね?)

756:753
07/11/16 01:23:12
>>754
cw と違ってその場で任意の文字に対応できて良さそうですし
その方法を使ってみます.
どうもありがとうございます.

757:名無しさん@お腹いっぱい。
07/11/16 01:25:55
こういうのもある。
camelcasemotion - Mappings for motion through CamelCaseWords and underscore_notation. : vim online
URLリンク(www.vim.org)

俺も ct_ でやるけど、これは4キー。
速さとタイプしやすさを総合すると、vで選択してcの方がいいかもという気はする。

758:名無しさん@お腹いっぱい。
07/11/16 01:50:16
>>757
ありがとうございます.欲しかったのはまさにこの機能です.
v3wc (v3t_c) でも c3w (c3t_) でもあまり変わらないと思いますが,
自分は何となく v は目が疲れるような気がするので避けています.

759:名無しさん@お腹いっぱい。
07/11/16 02:28:56
>>755
アウトラインてこういうの?
URLリンク(vimwiki.net)
vimの正規表現は強力だから他のエディタがやってる正規表現ベースの
アウトラインならけっこう簡単に作れると思う。

760:名無しさん@お腹いっぱい。
07/11/16 08:20:18
>>759
いや、そういう関数一覧とかいう感じのじゃなく
単なる階層構造というか、通常文章での章立てみたいなのを扱いたいんですよね
秀丸やWZなんかについてるアレです
URLリンク(hide.maruo.co.jp)
ここの「通常のテキスト」みたいな奴ですね

とりあえずwww.vim.orgからTVOってのを落としてきましたが
オール英語で使い方を模索中でござる
他に遣っている方いますかね?

761:名無しさん@お腹いっぱい。
07/11/16 09:25:17
スマートテキスト系のパーサをいじって、章ヘッダとかをtagsファイルに出力させて、
それをtaglist.vimで参照しつつvimで論文を書いたことある。
パブリッシュや印刷プレビューなんかはMakefileに書いて一発呼出しすればさらに便利。

まわりが長文だけはemacsとか、macやwinを使う中で、なかば意地で書いた環境だったけどわりと使えたな。


762:名無しさん@お腹いっぱい。
07/11/17 05:19:47
URLリンク(hide.maruo.co.jp)
これはvimに欲しいと思った

763:名無しさん@お腹いっぱい。
07/11/17 05:26:20
>>737
作者にpatch送りました。version 7.1.4で取り込まれた様子

764:名無しさん@お腹いっぱい。
07/11/17 06:24:19
gj

765:名無しさん@お腹いっぱい。
07/11/17 06:49:21
>>764
thx.
でも、bufexplorer.vimの改行コードが dos(CRLF)に変わっとる。
そのお蔭か、Windows上では問題ないっぽいけど、Linux上のvim(or gvim)でエラーがでる。
:se ff=unix
:w
したらエラー出なくなる模様

766:名無しさん@お腹いっぱい。
07/11/17 11:57:58
>>763
ありがとう
もの凄く感謝

2バージョン放置されていたところを見るとやっぱり空白パスなんて使っている人居ないんだろうね・・・

767:名無しさん@お腹いっぱい。
07/11/17 23:52:48
そういうことではないと思うが…
次はがんばれ

768:名無しさん@お腹いっぱい。
07/11/18 00:00:22
vimの背景に画像を設定することはできますか?

769:名無しさん@お腹いっぱい。
07/11/18 00:38:13
>>768
URLリンク(gugurekasu.com)

770:名無しさん@お腹いっぱい。
07/11/18 01:33:05
>>769
けなげに、ごくろう!
ありがとうございました。

771:名無しさん@お腹いっぱい。
07/11/18 09:20:23
URLリンク(gugurekasu.com)ってこのためだけにドメインとってるの?w
なんかスゲー

772:名無しさん@お腹いっぱい。
07/11/19 15:40:31
version 6.1だけど画像を背景にできるのを見つけた
URLリンク(www.jbrowse.com)
ver7以降も作ってくれるといいのになぁ

773:名無しさん@お腹いっぱい。
07/11/19 17:23:04
なんか150行位のpatchだしvim7にもちょっとの修正でなんとかなるんじゃない?
半分以上は宣言とか、登録とかで、実装部はそんなにないし。いや、ちらっとしか見てないけど。


774:名無しさん@お腹いっぱい。
07/11/19 22:38:31
誰か最新版で作ってくれ

775:名無しさん@お腹いっぱい。
07/11/20 00:25:18
行の位置とかは調整しないとだめだけどコードはそのままで動くぞ

776:名無しさん@お腹いっぱい。
07/11/21 14:44:25
escを ctrl+[ で入力するとなぜか ^] が入力されてしまうマシンがあります。
^jでEnterとかはうまくいくのに、ctrl+[だけ動作がヘンです。対処法があれば教えてください。

777:名無しさん@お腹いっぱい。
07/11/21 15:04:44
キーボードの配列がASCIIになってないかそれ?

778:776
07/11/21 15:17:36
gnomeでキーボード設定をいじるのをやめて、x.orgの設定を活かすようにしたら直ったようです。
キーボード配列というヒントありがとうございました。

779:名無しさん@お腹いっぱい。
07/11/22 00:30:38
ノートパソコンに入れて使ってみたらESCの押し間違いでF1押して
ヘルプが開いてしまいます。。F1でヘルプを開くのをとめたいのですが
どうすればよいでしょうか・・・。:hはよく使います。おねがいます。

780:名無しさん@お腹いっぱい。
07/11/22 00:41:17
>>779
:help <Nop>

781:名無しさん@お腹いっぱい。
07/11/22 12:09:00
キーワードを2つ以上使い分けてnやNを利用できないでしょうか?

例えば検索キーがword1、word2の二つあったとすると、
・nを押したらカーソル位置以降のword1を検索
・何かのキーを押したらカーソル位置以降のword2を検索

という風にしたいのです。
よろしくお願いします。

782:名無しさん@お腹いっぱい。
07/11/22 12:34:36
/のあとカーソルキーで検索履歴をたどるのではダメ?

783:名無しさん@お腹いっぱい。
07/11/22 13:15:09
別のウィンドウでもうひとつvim動かした方がよくない?

784:名無しさん@お腹いっぱい。
07/11/22 14:25:13
履歴のほうならhistget("search",-2)で一つ前の検索語を取得できるな
helpで
> |: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プラグインなら検索語を色分けできる

785:名無しさん@お腹いっぱい。
07/11/22 14:26:36
:history
:history search
histget()
あたりのhelpよめばほかに何かいいものが浮かぶかもしれない

786:名無しさん@お腹いっぱい。
07/11/22 22:26:08
>>780
ありがとうございます!できました!

787:名無しさん@お腹いっぱい。
07/11/23 20:33:28
/search1/;/search2/
がよくわからん。だれか教えてけれ
:help //; でドキュメントは見れるんだけどな

788:名無しさん@お腹いっぱい。
07/11/23 23:19:41
>>787
何が分からないのかがよくわかんないんだけど ";"のこと?
範囲指定の","と";"の違いですか?もしそうなら cmdline-rangesを参考に。
そうじゃなければスマソ。


789:名無しさん@お腹いっぱい。
07/11/24 14:25:41
テンプレートを入力するプラグインを書きました。以下宣伝です。
URLリンク(ripjohn.net)
URLリンク(ripjohn.net)
内容:
>>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>で最後のプレースホルダ「<++>」が削除され、入力開始。

簡素ですが、コード書きやマークアップ文書の編集には大体間に合うんじゃないかと思います。
ご意見いただければ幸いです。

790:名無しさん@お腹いっぱい。
07/11/24 14:34:56
>>760
折り畳みで間に合うんじゃないですか? cf. :help folding
例:
 vim: set foldmethod=marker :
1章 供犠 {{{
1.1 供犠の機能 {{{
  ほげほげ
 }}}
1.2 供犠の危機 {{{
  うんたらかんたら
 }}}
}}}
2章 オイディプスと贖罪のいけにえ {{{
  ふーばー
}}}

って感じで。
foldmethod=exprで、foldexprに判別式を設定すれば
もうちょっとスマートに書けます。

791:781
07/11/24 15:17:18
レスありがとうございます。

>>781
シーケンシャルでなくランダムアクセスでやりたいです。
Googleツールバーのように、複数のキーワードのボタンが勝手に出来て、
好きなのを押せばそのキーワードでページ内検索できるのがすごく便利だなと思ったので。
mで登録、`で移動と同様のやり方で検索キーを使い分けられればベストです。

>>784
ありがとうございます!これでほぼ解決できました。
:S2などでキーを切り替えてn、Nで次々に飛べるのでやみつきです。



792:名無しさん@お腹いっぱい。
07/11/25 22:59:02
>>784
これどうよ
検索履歴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>



793:名無しさん@お腹いっぱい。
07/11/27 21:37:00
すいません、素朴な疑問があるのですが

カーソル移動をホームポジションに割り当てたところで、あるいはwやbを用意したところで
エスケープキーを押す必要があると、かえって使いにくいと思わないですか?

Ctrl+M や Ctrl+H みたいなことができるなら、ギリギリまでホームポジションに手を置いたまま作業ができそうですが
いちいちEscまで手を伸ばすのは結構しんどいと思うのですが・・・

つまらない事かもしれませんが、Vimをバリバリ使っている人がどう思ってるのか聞きたいです。

794:名無しさん@お腹いっぱい。
07/11/27 22:09:26
Ctrl+[ を使うからホームポジション崩れませんがな

795:名無しさん@お腹いっぱい。
07/11/27 22:17:58
Ctlr+C使ってる

796:名無しさん@お腹いっぱい。
07/11/27 22:27:13
Ctrl+C 潰しちゃあかんやろ

797:名無しさん@お腹いっぱい。
07/11/27 22:27:30
エスケープキーはファンクションキーと同じでvimに限らずほとんど触ることがないな
一応ついてるキーボードだけど

798:名無しさん@お腹いっぱい。
07/11/27 22:40:20
" alt + i 連打で () で囲まれた範囲を拡大選択
nnoremap <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"); が選択される感じ

799:793
07/11/27 23:14:41
あうあうー
こんな便利なキーがあったとは・・・orz


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch