Vim Part21
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2012/07/16(月) 01:09:05.70http://www.vim.org/
前スレ
Vim Part20
http://toro.2ch.net/test/read.cgi/unix/1322212163/
関連情報は>>2-6あたり。
0034名無しさん@お腹いっぱい。
2012/08/16(木) 15:21:02.02%sで対象行及び対象自体絞れる気がするけど…
0035名無しさん@お腹いっぱい。
2012/08/16(木) 15:30:42.87できました!
ありがとうございます。
0036名無しさん@お腹いっぱい。
2012/08/16(木) 15:37:44.97素直にshellを使うよろし。
:%! grep 'hoge' | sed 's/hage/hige/'
0037名無しさん@お腹いっぱい。
2012/08/16(木) 15:41:54.42それじゃ、hogeが含まれてない行が全部消えちゃうだろw
>>34
範囲指定なら sだけでもいけるけど、/hoge/マッチ複数行が対象だと g 併用必要。
0038名無しさん@お腹いっぱい。
2012/08/16(木) 16:13:27.80> 範囲指定なら sだけでもいけるけど、/hoge/マッチ複数行が対象だと g 併用必要。複数行にまたがるならhogeで複数行選択しちゃったら良いんじゃない?
検索結果の複数行にあてるなら/gつければいいだけだし
0039名無しさん@お腹いっぱい。
2012/08/16(木) 16:21:06.43そういう意味じゃないよ。
/hoge/ が含まれる行が「飛び飛びに」2行以上ある場合。
:/hoge/s/hage/hige/
↑
では、最初の/hoge/の行しか変換されない。
:g/hoge/s/hage/hige/
↑
でやっと目的通り。
まあ、テストファイルで試してみろ。
0040名無しさん@お腹いっぱい。
2012/08/16(木) 16:29:13.51たとえ、
:/hoge/s/hage/hige/g
ってやってもダメ。
これは、最初の/hoge/の行1行内の複数のhageをhigeに変換するだけ。
よって、>>38 に書いてる「/gつければいいだけ」は間違い。
>>39 が正解。
0041名無しさん@お腹いっぱい。
2012/08/16(木) 16:31:46.43ん?
:/hoge/s/hage/hige/
じゃなくて:%s使った場合ね
:/hoge/s/hage/hige/
でも
/gに関しては%s表記でも:/hoge/s/hage/hige/gでも
最後に/gでもいいじゃないってこと
0042名無しさん@お腹いっぱい。
2012/08/16(木) 16:35:22.63%s/hage/hige/
ってこと?
%s じゃ、全行対象だから全然駄目じゃん。何がしたいの?
/hoge/が含まれてる行だけのhageをhigeに変換だよ。
0043名無しさん@お腹いっぱい。
2012/08/16(木) 16:48:23.42vi の :%s/BBB/CCC/ → sed s/BBB/CCC/ に相当 → NG
vi の :g/AAA/s/BBB/CCC/ → sed /AAA/s/BBB/CCC/ に相当 → OK
ってことでしょ。
0044名無しさん@お腹いっぱい。
2012/08/16(木) 16:53:44.68正規表現使ってhogeが含まれる行内で前後方一致で特定部位を置き換え出来るでしょと言いたかったがvimでは無理だった
0045名無しさん@お腹いっぱい。
2012/08/16(木) 18:07:45.220046名無しさん@お腹いっぱい。
2012/08/16(木) 19:10:21.460047名無しさん@お腹いっぱい。
2012/08/16(木) 19:21:41.570048名無しさん@お腹いっぱい。
2012/08/16(木) 19:22:26.57:%s/.*hoge\&.\{-}\zshage/hige/g
0049名無しさん@お腹いっぱい。
2012/08/16(木) 19:37:25.13例外が横行すると正規の意味ないし
0050名無しさん@お腹いっぱい。
2012/08/16(木) 19:43:17.050051名無しさん@お腹いっぱい。
2012/08/16(木) 19:44:21.02実際自分もどこまでが標準的な正規表現なのかはわからない…
この辺はperl使いの人が詳しそうと思っている
0052名無しさん@お腹いっぱい。
2012/08/16(木) 19:46:21.120053名無しさん@お腹いっぱい。
2012/08/16(木) 19:50:46.780054名無しさん@お腹いっぱい。
2012/08/16(木) 19:55:20.44んー、うまくいかなかった
----
hoge hage hige
----
とか可変させて複数行書いて試してみたけどPattern not foundになってしまう
0055名無しさん@お腹いっぱい。
2012/08/16(木) 20:04:24.400056名無しさん@お腹いっぱい。
2012/08/16(木) 20:06:20.34>>51
正規なのに標準を気にする辺り終わってる気がしないでもないが仕方ない
社内の規約など深く考えないことが精神的には重要なんだ、対決し出すと死んじゃう
0057名無しさん@お腹いっぱい。
2012/08/16(木) 20:47:03.22ソースはオレ
0058名無しさん@お腹いっぱい。
2012/08/16(木) 21:14:37.10個人的にはね
emacs使いはセキュリティ知識皆無もいいとこでよくも偉そうにして語ってんね、ってぐらいひどいのでemacs使い=頭がおかしいという偏見がある
0059名無しさん@お腹いっぱい。
2012/08/16(木) 21:21:38.860060名無しさん@お腹いっぱい。
2012/08/16(木) 23:29:12.670061名無しさん@お腹いっぱい。
2012/08/17(金) 09:38:47.95だがそれでも敢えて言いたい
Vi(m)とEmacsの併用が無敵だと?
0062名無しさん@お腹いっぱい。
2012/08/17(金) 18:43:15.56なので用途が違うワケで併用は何ら不思議じゃない…と言うか
何故GIMPとInkscapeで優劣付けるようなことしたがるんだ???と思う
0063名無しさん@お腹いっぱい。
2012/08/17(金) 19:49:00.72vimscriptとelispが使えるって意味ならあまりに要領悪いというか・・・
0064名無しさん@お腹いっぱい。
2012/08/18(土) 01:50:58.310065名無しさん@お腹いっぱい。
2012/08/18(土) 01:53:20.860066名無しさん@お腹いっぱい。
2012/08/18(土) 02:21:08.110067名無しさん@お腹いっぱい。
2012/08/18(土) 02:50:03.35いいです。と言いたいところだけど今使ってるので不自由してないならいんじゃない。
私は、強力な正規表現が使えるからVimを使い始めました
0068名無しさん@お腹いっぱい。
2012/08/18(土) 13:14:50.10UNIX系の環境を何種類か扱うなら覚えて損はない
特にサーバ管理者とかやるならvimに限らずnvi辺りも含めてになる
MacOSXなんかでもデフォで入ってるエディタとしては高機能
WindowsでもコマンドプロンプトやCygwinなどを頻繁に使うなら
コマンドプロンプト上で出来ることが増えて便利かもね
だが、WindowsオンリーでGUI作業がメインでエディタ間に合ってます
…なんて人だと覚えるの途中でやめちゃうかもね
h,j,k,l,i,a,x,:w,:q覚えて終わりみたいな
0069名無しさん@お腹いっぱい。
2012/08/18(土) 15:51:44.91hjkl-mode/hjkl-mode.el at master · ainame/hjkl-mode · GitHub
https://github.com/ainame/hjkl-mode/blob/master/hjkl-mode.el
>hjkl-mode is a minor-mode on emacs. It provides vim keybindings for moving cursor.
0070名無しさん@お腹いっぱい。
2012/08/18(土) 16:01:06.49WindowsのVC++から入ったプログラマだけど
Vimはほんと素晴らしいと思う
動作が軽くて扱いやすくて
キーボードだけで済むから
覚えてしまうとWin上でもjjjjjjとかやっちゃうwww
Emacsも良いらしいけどサーバーによっては入ってなかったり
客の環境だったり、社内規則だったり
状況によっては入れられなかったりする
(自分は結局これが障害になってEmacs覚え損ねた)
その点Vi、Vimはどんなサーバーにも必ず入ってる点が強い
個人的にはscreenも標準インストールになってくれると嬉しいんだが…
0071名無しさん@お腹いっぱい。
2012/08/18(土) 17:12:05.17ある環境で標準的なインストール先になかったことがあった
/usr/binでも/usr/local/binでなくて
後になって誰かが変なところにインストールしてみたいで
/usr 以下に変なディレクトリが20個以上あってそのどれかに入ってたらしい
結局最後になるまで気付けず,edを使ってた
0072名無しさん@お腹いっぱい。
2012/08/18(土) 19:26:11.86なんか宗教戦争起こすのってどっちも精通してなさそうな人だよね
0073名無しさん@お腹いっぱい。
2012/08/18(土) 20:10:10.46実際は先に覚えた方を理由つけて応援してるだけな気がする
あと両方精通してる怪人はEmacsの良い機能をすかさず
移植してくれる可能性があるので崇め奉ること!
0074名無しさん@お腹いっぱい。
2012/08/18(土) 20:30:22.49あんまりよく知らんけど
0075名無しさん@お腹いっぱい。
2012/08/18(土) 20:53:12.89禁止というよりデフォルトでは入っていなくて
ソフトウェアの追加ができないとなっているところは結構ある.
0076名無しさん@お腹いっぱい。
2012/08/18(土) 22:51:13.25インターネットが一般に広がったときでも、ナローバンドで落とすのが大変だった。
最初の Java の JDK と同じぐらい大きかった。
だからやっぱりEmacsは開発環境なんだと思ったよ。
0077名無しさん@お腹いっぱい。
2012/08/18(土) 23:25:34.280078名無しさん@お腹いっぱい。
2012/08/18(土) 23:28:26.730079名無しさん@お腹いっぱい。
2012/08/19(日) 01:56:33.07Emacsのが先に覚えたけど小指痛めてからvi応援するように
つーても小指以外では不満なかったから悪く言うつもりもないな
0080名無しさん@お腹いっぱい。
2012/08/19(日) 03:21:16.36ありがとうございます。
vimを使ってみようと思います。
0081名無しさん@お腹いっぱい。
2012/08/19(日) 07:29:08.49でもVimの正規表現って方言キツいよね
0082名無しさん@お腹いっぱい。
2012/08/20(月) 03:00:24.020083名無しさん@お腹いっぱい。
2012/08/20(月) 03:07:36.040084名無しさん@お腹いっぱい。
2012/08/20(月) 03:14:21.17which vimしなかったの?
0085名無しさん@お腹いっぱい。
2012/08/20(月) 03:35:48.520086名無しさん@お腹いっぱい。
2012/08/20(月) 06:43:44.800088名無しさん@お腹いっぱい。
2012/08/20(月) 16:43:53.55どうしてますか?普通にESCを押すのはちょっと遠いし、ctrl+[を使うとなると
Emacsと差別化出来ない(小指的な意味で)と思ったんだけど、どんなキーにしてますか?
あと、行末とか行頭に移動して入力するっていう操作はEmacsよりステップが多くなるものなのかな?
Emacsは ctrl + A or E で済むけど、
Vimは ESC→^ or $ → i or a(挿入)って感じになりません?
0089名無しさん@お腹いっぱい。
2012/08/20(月) 16:54:40.38行頭行末に挿入はIとA
プロはInsertモードはほとんど使わないから実はEscape押す必要ないらしい。
0090名無しさん@お腹いっぱい。
2012/08/20(月) 16:59:04.410091名無しさん@お腹いっぱい。
2012/08/20(月) 17:21:38.910092名無しさん@お腹いっぱい。
2012/08/20(月) 17:35:58.36今hhkだけど前の方が早かった気がする
0093名無しさん@お腹いっぱい。
2012/08/20(月) 19:11:46.410094名無しさん@お腹いっぱい。
2012/08/20(月) 19:35:28.83を知ってびっくりした
0095名無しさん@お腹いっぱい。
2012/08/20(月) 19:52:25.44Insertモード使わんでどうやって入力すんの?
0096名無しさん@お腹いっぱい。
2012/08/20(月) 22:36:09.92セキュリティなんざ糞食らえだぜ。
0097名無しさん@お腹いっぱい。
2012/08/20(月) 22:44:38.75vimだってctrlの使用頻度は高いよ。
でもノーマルモードの便利なコマンドが指に馴染めば
emacsと意識して差別化する必要も感じなくなると思う。
他人のスタイルにケチ付けるわけじゃないけど
もしインサートモードで単語ジャンプなんてマッピングしてたらすぐにやめた方がいい。
それからキーボードがアスキー配列じゃないようなら替えるのを勧める
0098名無しさん@お腹いっぱい。
2012/08/20(月) 22:58:38.60俺は右Altだな
j連打で抜けるようにしている人もいるらしいけど
0099名無しさん@お腹いっぱい。
2012/08/20(月) 23:10:35.99ctrl+[をそのまま使う感じなんすかね〜
インサートモードでマッピングっていうのは、ctrl+Aで行頭に飛んで〜っていうのですか?
便利そうだから導入しようかと思ったんですが、そんな風に使うもんじゃないんですかね
アスキー配列っていうのはUSキーボードのことですか?
当方USキーですが、VimにはJISの方が向いてるのかなと感じています。
コロンがシフト無しで使えたり・・・
0100名無しさん@お腹いっぱい。
2012/08/20(月) 23:12:53.08Insert -> Normalは、俺は特にマッピングしてない。Esc遠いなら、他の人が言うようにjjとかkkとかにマッピングしたらおけ。
Insertモードで行頭、行末は、素の状態なら<Esc>Iか<Esc>A。それか、<C-o>^。
Emacsと同じにしたければ、inoremap <C-a> <Esc>I などすればおけ
0101名無しさん@お腹いっぱい。
2012/08/20(月) 23:14:43.72コロンはus配列でも
nnoremap ; :
nnoremap : ;
ってしとけば楽だよ
0102名無しさん@お腹いっぱい。
2012/08/21(火) 01:43:17.79原理主義みたいな事が言いたいわけじゃなくて、インサートモードで
キーを連打して移動するのが合理的じゃないっていうだけの事なんです笑
アスキー配列を勧めたのはctrl-[が近い以上の理由はないけど
何か挙げるならノーマルモードの[プリフィックスのコマンドは便利なのが多いとか。
でもまぁこんなものは代わりに別のキーが遠くなってるだけなので好みの問題かな
0103名無しさん@お腹いっぱい。
2012/08/21(火) 02:02:43.84お客さんのサーバで設定ファイルいじれないとかじゃなければ、自分の好みにマッピングしてしまえばok
やりすぎると素のVimを使わざるを得ない時に発狂しそうになるけど…
ascii配列は、'と"がほぼホームポジションてのがいい
0104名無しさん@お腹いっぱい。
2012/08/21(火) 02:51:15.26話は違うけど、今一歩理由が分からないんだけど、
このよく見るマップ、トラブルがあるらしいんで、ずっとためらっている。
なんか実際のトラブル例があれば教えて。
http://stevelosh.com/blog/2010/09/coming-home-to-vim/
>I don’t remap : back to ; because it seems to break a bunch of plugins.
0105名無しさん@お腹いっぱい。
2012/08/21(火) 04:46:30.25壊れているのは、そのプラグインの製作者の頭
nnoremap hoge : と書くべきところを nmap hoge : とすると : にどこかでマッピングが定義
されている場合、不具合が生じる。本当はvimのhelpのそうなっているところを修正しなけ
ればならないが言い出しっぺの法則で誰もvim_devで言及しない。
0106名無しさん@お腹いっぱい。
2012/08/21(火) 05:06:30.35プログラミングの楽しさが増えたお!
VisualStudioでも使える様にして欲しいお!
もう一生VimでC/C++,VC++,C#,Pythonだけ書いていたいお
キーボードを使う世の中の全ての環境がVimのキーバインドになって欲しいお!
hjklで上下左右に動いてggでトップに行って、Gで最後に行ってってなって欲しいお!
0107名無しさん@お腹いっぱい。
2012/08/21(火) 05:24:05.580108名無しさん@お腹いっぱい。
2012/08/21(火) 13:04:54.720109名無しさん@お腹いっぱい。
2012/08/21(火) 18:32:21.270110名無しさん@お腹いっぱい。
2012/08/21(火) 18:37:31.610111名無しさん@お腹いっぱい。
2012/08/21(火) 18:59:28.310112名無しさん@お腹いっぱい。
2012/08/21(火) 19:01:23.14行儀が悪いプラグインだと影響ありそう。
俺はそのマッピングしてないけど、影響あるのってnormalしてるところだけじゃないんかね。
他何があるのかわからんわー。
0113名無しさん@お腹いっぱい。
2012/08/21(火) 19:28:23.6686Uと87UB。右Ctrlいるでしょ
0114名無しさん@お腹いっぱい。
2012/08/21(火) 20:26:44.78もうリアフォすらでかくて邪魔
0115名無しさん@お腹いっぱい。
2012/08/22(水) 00:15:32.13和田先生がEmacs派でLisp使いでも
キーボードというインターフェイスは使い慣れた馬の鞍の様に変えないもの
必要な機能だけに絞るがキーボード本来の打ちやすさは失わない
という思想に共感
静電容量式のしっとりした打ち心地にハマったのも大きいかな
まさか一生使い続けると誓ったIBMのモデルMから乗り換える程気持ちいいとは思わなかった
0116名無しさん@お腹いっぱい。
2012/08/22(水) 00:42:15.390117名無しさん@お腹いっぱい。
2012/08/22(水) 01:15:35.410118名無しさん@お腹いっぱい。
2012/08/22(水) 01:34:30.94最近は少なくなったなあと思う
0119名無しさん@お腹いっぱい。
2012/08/22(水) 01:38:01.10入れ替えてないのは俺だけ。
0120名無しさん@お腹いっぱい。
2012/08/22(水) 01:45:32.910121104
2012/08/22(水) 02:17:03.27レスありがとう
僕もnnoremapとnormal!は思いついたんだけど、そんなものなのかな。
ちなみに上のsteve loshって人はgundoとか作っている人。
0122名無しさん@お腹いっぱい。
2012/08/22(水) 07:36:25.63配列はソフト的にどうとでもなるからよっぽど変態的な配置じゃないかぎりどうでも良かったり
となるとスペース的にHHKに行き着く
miniguruが発売中止にさえならなければ対抗馬だったのだが
0123名無しさん@お腹いっぱい。
2012/08/22(水) 09:40:16.51日本人だけじゃなく本国や世界中で言われてるのに未だ変わらない
たしかそういう団体まであったよね?名前忘れたが
0124名無しさん@お腹いっぱい。
2012/08/22(水) 09:47:31.88こっちに移ろうぜ。
Keyboard キーボード 3
http://toro.2ch.net/test/read.cgi/unix/1285489282/
0125名無しさん@お腹いっぱい。
2012/08/22(水) 12:36:34.07環境は windows vista 、 kaoriyaさんの vim73-kaoriya-win32 で gvim を
使って勉強しています。一通り、:tutorial は終えたのですが、宿題が残りました
それは、外部シェルコマンドを実行しようとして、:!ls や :!dir をうちこむと
/bin/bash -c "dir"
指定されたパスが見つかりません。
shell returned 1
とエラーがでて実行できません。パスを通せばいいと思うのですが、環境変数などを変更するのでしょうか
それとも _vimrcファイルなどにパスを書くのでしょうか。
0126名無しさん@お腹いっぱい。
2012/08/22(水) 12:39:24.110127名無しさん@お腹いっぱい。
2012/08/22(水) 12:42:17.550128名無しさん@お腹いっぱい。
2012/08/22(水) 12:47:37.84>126
あります。コマンドプロンプトで打つと反応がありました。
>127
本当ですね。すいません、焦って書き込みしてしまいました。
0129名無しさん@お腹いっぱい。
2012/08/22(水) 12:51:29.79スレ違いですので、
vim Part4 - ソフトウェア板@2ch
のほうに質問をすることにしました。
おさわがせしました。
0130名無しさん@お腹いっぱい。
2012/08/22(水) 19:41:48.350131名無しさん@お腹いっぱい。
2012/08/25(土) 04:47:22.46vim ファイル名 で起動した場合、ファイルの途中からしか読むことが出来ず、最初の方を読むことが出来ません
マウスでスクロールすると表示出来ますが、カーソルを持って行くことが出来ません
vimを起動してから、:e ファイル名 の場合は問題無いようです。
前者を後者に統一したのですが、解決策をお願いします
0132名無しさん@お腹いっぱい。
2012/08/25(土) 12:04:42.00autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif
を無効に
0133名無しさん@お腹いっぱい。
2012/08/26(日) 16:45:53.34■ このスレッドは過去ログ倉庫に格納されています