[過去ログ] vi 2nd (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
810(5): 2011/07/23(土)19:40 AAS
初心者向けのテキストに:wqでなくZZを教えてるものが多い気がするがなぜだろう。
慣れたらまったく使わなくなるのに。
811(2): 2011/07/23(土)19:47 AAS
>>810
ん?
慣れたら :x だろ?
:wq は更新がなくても強制書き込みするから糞コマンド。使わない方がよろしい。
812(1): 2011/07/24(日)00:16 AAS
>>811
:wq というか、:w で上書きしない方がクソ仕様だろ。
813: 2011/07/24(日)01:15 AAS
>>810>>812
同意できない
>>811
同意
814: 2011/07/24(日)04:55 AAS
>>810
設定ファイル弄るときにはZZのが好きかな
ミスって設定読まずに起動するしかない場合に
コロンは場所が違っちゃったりするからね
でも俺も、少なくとも初心者向けとしては:wqのが体系的に覚えられて良いと思う
815(1): 2011/07/25(月)11:48 AAS
初心者こそZZ(or :x)だろ
mtimeが書き換わる:wqが癖になる必要はない。
816: 2011/07/25(月)20:24 AAS
>>815
:w、:q、:q!、:wqをセットで覚えて使い分けるべきってことさ
817(1): 2011/07/25(月)20:41 AAS
:x :q :q! :w の順に覚えるべき。
:wq は害があるので覚えない方がよろしい。
818: 2011/07/25(月)22:55 AAS
順番で言ったら:q!が最優先だと思うが。
vi知らずに起動してしまった場合、パニックでいろいろやらかしても
ESCと:q!だけ知ってればエスケープできるし。
819: 2011/07/26(火)07:04 AAS
>>817
閉じるのは:q、それが効かない場合には:q!と:wqとを選ぶ、と教えるんだよ
ZZは常用させると保存しちゃいけないときに保存しちゃうし
体系的にほかのコマンドとの関連がないから覚えにくい
820: 2011/07/26(火)07:09 AAS
あ、いやその場合も:wqは要らんか
:wの後に改めて:q、と教えるほうが良いな
何れにしろZZや:xは教えるべきじゃない
821(5): 2011/07/26(火)07:29 AAS
:x は、保存の意思を持って使用するコマンド。
その結果、ファイルが更新されていなければ
不用意にタイムスタンプをいじらないから合理的。
:wq で終了、と刷り込まれてる人は
ファイルの内容を見るためにviを起動して
:wq で終了してタイムスタンプ更新しちゃうから最悪。
822(3): 2011/07/26(火)07:33 AAS
>>821
常用しちゃうとそれを終了に使っちゃうわけよ
だから保存と終了を兼ねるコマンドは教えてはならない
保存は:w、終了は:q、破棄は:q!と教えるべきかと
823(2): 2011/07/26(火)07:39 AAS
>>822
ちがう。
最初から、保存したい時は :x
保存したくない時は :q で、駄目だったら破棄覚悟で :q! と教える。
:x で、保存したいファイルが保存されなかったということはない。
:wq は廃止するべき。
824(1): 2011/07/26(火)08:44 AAS
>>822
ハゲ同意
意図しない保存を防ぐ為に、:wと:qを使い分ける。
viに限らず、WinやMacのエディタやエクセルなどのソフトでも保存と終了は使い分ける。
825: 2011/07/26(火)12:20 AAS
>>822
>>823
どっちも合理的。
>>824
> viに限らず、WinやMacのエディタやエクセルなどのソフトでも保存と終了は使い分ける。
同意できない。
826(1): 2011/07/26(火)15:01 AAS
>WinやMacのエディタやエクセルなどのソフトでも保存と終了は使い分ける。
とっくの昔にautosaveなのだが…
827(2): 2011/07/26(火)16:37 AAS
>>823
じゃあ、保存だけのために終了するのかい?
保存だけを単品でするクセを付けたほうが良い。
終了するときだけ保存、というのはやめたほうが良いよ。
何時間も編集してたのが?だらどうすんのさ。
828: 2011/07/26(火)16:55 AAS
>>827
もともとの話の前提が違う。
元の話は >>810 に対する反論。
言いたいことは「:wqは使うな」
vi初心者にviの終了コマンドを教える時に、
「保存して終了なら :x」
「保存せず終了なら :q を試して駄目なら :q!」
省2
829(1): 2011/07/26(火)18:11 AAS
>>827
viを使い方としては特殊だろw > 何時間も立ち上げっぱなし
830: 2011/07/26(火)19:35 AAS
>>826
そのautosaveとctrl+sは機能が違うよね。
autosaveでオリジナルファイルを勝手に更新されたら、たまったもんじゃない。
それは、クラッシュした時の保険だよ。
831: 2011/07/26(火)21:59 AAS
>>810-830
お前ら、どうでもいいだろそんな話。
スレ伸びてると思ったら、大概にしろお前ら。
低レベルの話題しかできないなら、保守だけしてろよ。
832(1): 2011/07/27(水)00:48 AAS
タイムスタンプなんてあやふやなものに頼ってる人と一緒に作業したくないな。
共同編集するならバージョン管理使う。エディタの仕事じゃない。
833: 2011/07/27(水)07:37 AAS
>>832
タイムスタンプが確固たるものではないことは同意だが、
だからと言って無編集のファイルのタイムスタンプを :wq で不用意に更新していい
という理由にはならない。
あ、ちなみに共同編集でバージョン管理は当然使ってるし。
834(1): 2011/07/27(水)08:40 AAS
>>829
常用エディタとして使うと結構、長時間起動するもんよ
まあ無保存でってのは無いだろうけどさ
んで、やっぱ保存と閉じるのは別物だと思う
その上で、:w →:q とすべきであって
:x や ZZ で覚えてしまうと「viは閉じる=保存のエディタなのか」と誤解されかねない
:wq は :w →:q をセットにしたものだよ、と体系的に覚えられるのが利点
省2
835(1): 2011/07/27(水)08:49 AAS
>>834
「保存するという明確な意思がある」なら :x でいいじゃん。
なんでタイプ数の多い :wq 使うの?
> :w →:q をセットにしたものだよ
:w と :q をセットで使うのは無駄。セットで使ってはいけない。
836(1): 2011/07/27(水)09:07 AAS
>>835
同じような機能を覚えるのがめんどうです。
ZZは、初心者が終了できない地獄に陥ったときに、簡単で覚えやすい為だけにあると思う。
837(1): 2011/07/27(水)09:15 AAS
>>836
なんだ、viの機能使いこなしてないユーザーのたわごとだったか。
結論「:wq は使うな」
838: 2011/07/27(水)10:37 AAS
そんなひっぱるほどの話か?
839: 2011/07/27(水)12:37 AAS
年寄りはやることないから会話に飢えてるんだよ。
840: 2011/07/27(水)12:42 AAS
>>837
始めから初心者に教える場合の話をしてただろ
841(1): 2011/07/27(水)16:07 AAS
>>821 の考え方だと、ファイルの内容を見ただけなのに :x で閉じてしまう。
842(1): 2011/07/27(水)16:14 AAS
>>841
それでOKだが。
>>821 には「保存の意思を持って」とちゃんと書いてある。
ファイルの内容を見ただけなのに :wq で閉じてはいけないという主張だよ。
843(1): 2011/07/27(水)16:27 AAS
>>842
いや見るだけなら保存の意思なんて無いじゃん。
保存の意思が無いなら :wq だって使うべきではないよ。
>>821 は上段と下段で前提が変わっちゃってるのよ。
844(1): 2011/07/27(水)16:38 AAS
>>843
前提は >>810 に対する反論で、:wq ではなく :x (原文はZZだが)を
教えろという主張
ファイル開いて時間が経って
多分編集はしてないはずだけどもしも編集していたら保存はしたい
でも編集してなければ無闇にファイルを触らないで欲しい
という状況は良くあることで
省1
845(1): 2011/07/27(水)16:51 AAS
>>844
う〜ん…その状況だとまず :q じゃね?
:wq の利点は、そこから :q や :w に発展できることであって、理想はその :w や :q だと思うのよ
ZZ から教えてしまうと、ZZ 単体で学習が止まってしまって、発展しない
結果としてZZの常用になりがちになってしまう
でもZZは保存コマンドであって終了コマンドではないのよ、常用すべきじゃない(それは :wq も一緒)
:w や :q に辿り着けるようなものにすべきだと思うのが俺の主張かな
846(1): 2011/07/27(水)17:04 AAS
>>845
発展の方向が逆だよ。
:x のあと、:q や :w を(:wqよりも)先に教えるから。(:wqは教えないけど)
:wqを先に教えて :qと:wに発展? させることはない。
それに、:wqなんてコマンドが使えるなら、
:we file2 とかも使えるの? とか、横道にそれちゃう。
:wqコマンドはviの設計ミスだね。
847(1): 2011/07/27(水)19:41 AAS
>>846
:x → :q や :w は発展ではなく、完全に別のコマンド体系じゃん。
もちろん :wq だって別のコマンドではあるんだが、覚えやすい。
:we は試してみれば判る話だろ。
848(2): 2011/07/27(水)19:51 AAS
>>847
完全に別のコマンドというか、独立した別のコマンドを教えたいんだから
問題なし。なんで「発展」とやらにこだわるの?
>:wq だって別のコマンドではあるんだが、覚えやすい。
「覚えやすい」が理由かよw
ということは :wq の害悪性については認めたんだなw
849: 2011/07/27(水)21:10 AAS
>>848
害悪さで言えば :wq も ZZ も害悪だと思う。
850: 2011/07/27(水)23:16 AAS
俺も:wqの害悪の方が酷いと思う。
851: 2011/07/28(木)00:04 AAS
まだやってたの!
852: 2011/07/28(木)10:47 AAS
>>848
何度も書いたが、:wqやZZ、:xで落ち着いてはいけない。
でも:xやZZというコマンドを最初に説明してしまうと、それが常用のコマンドとの誤解を与え兼ねない。
:wqの場合「実は:wと:qってコマンドがあって、これが元になってるのだよ」っていう風に素直に進めるの。
853(1): 2011/07/28(木)10:50 AAS
もっと言えば、:wq、:x、ZZのいずれも教えてはならない、と思う。
ただ、あえて最初に挙げられた両者のどちらかと言うならば、:wqのほうが:wと:qにすんなりたどり着けるだろう、ということ。
854: 2011/07/28(木)11:24 AAS
:x は常用のコマンド。
ZZは入力がわかりにくいし、
:x file とか
:x! とかに相当する動作ができないので使わない。
繰り返すが、
:x は常用のコマンド。
855: 2011/07/28(木)12:06 AAS
:x file ねえ… :w file → :q じゃダメなのかい
:x だけ教えられた初心者は保存せずに終了したい場合や
現在のファイルに上書きした上で他のファイルにも書き込みたい場合はどうするんだ?
結局 :w や :q も教えなくちゃならなくなるじゃないか。
vi の基本操作だけでも手一杯の時期なんだから、覚えるコマンドは少なく、かつ汎用性のあるものが良い。
保存と終了がセットのコマンドは、それがセットの場合にしか使えない。
:w と :q をセットで教えるほうが、いくらでも応用が効くよ。
856(1): 2011/07/28(木)12:09 AAS
…ちょっと例えば悪いか。いずれにしろ :x は
保存と終了を兼ねるという用途でしか使えない。
それは確かによく使う組み合わせかも知れないが
それだけでは保存だけ、終了だけの場合に対応できない。
保存だけって操作はよく使うだろ?終了だけの操作もよく使う。
だったら、セットのコマンドなんて教えずに、両方を教えたほうが汎用的。
857(1): 2011/07/28(木)12:31 AAS
>>856
勘違いしてもらっては困るが、
俺は :x :q(!) :w を教えて :wq を教えるなという主張だよ。
「保存だけ(:w)、終了だけ(:q)」を教えないなんて言ってない。
858(1): 2011/07/28(木)12:34 AAS
>>853
:wq → :w :q って、この場合1例しか成り立たない特例だよ。
1例しかない特例に「発展」(笑)とかの妄想的意味づけするのはアホ。
:se ≠ :s :e
:vi ≠ :v :i
だし。
もちろん、:se :s :e :vi :v :i は実在するexコマンド。
859(1): 2011/07/28(木)12:58 AAS
>>858
そうか、んじゃ俺の最初の人に対する答えは「どっちもダメ」だな。
>>857
う〜ん、:x は何故教えるの?
860(1): 2011/07/28(木)13:14 AAS
>>859
>>821
話がループしてきたね。
861: 2011/07/28(木)13:35 AAS
そろそろサマリを。
862(2): 2011/07/28(木)13:42 AAS
>>860
それじゃなくて、:w と :q と :q! を教えれば充分なのに
それに加えて :x を教えるべきというのはどうして?という話。
863(2): 2011/07/28(木)14:01 AAS
>>862
例えば複数のソースファイルを複数のxterm上で別々にviで開いて
複数ファイルに跨って編集して、そのすべてを終了する場面。
本人は全体を編集したつもりでも個別の一部のファイルは
編集されていないものもある。そんな時、:x で終了すれば
タイムスタンプの更新が最小限に抑えられ
その後の makeも合理的になる。
864(1): 2011/07/28(木)14:45 AAS
>>863
ああ、今まで全く理解に苦しんでたが、それで貴方の主張が飲み込めた。
要はシステム管理・設定ファイルの編集とかでなく、開発用のエディタとしての本格的利用を前提にしてるのね。
…ただ、複数編集や make のためのタイムスタンプって、既に俺の前提では応用の域なんよね。
編集したつもりなのだから、更新されても make の時間的都合だけで実害はないかと。
もちろん開発用に本格的に使うなら覚えて欲しいが、それは応用操作であって
vi をとりあえず使えるようになるための基礎としては
省1
865: 2011/07/28(木)16:05 AAS
>>862
:wは必ず書き込んでタイムスタンプ変更してしまう。
:xは必要だから、かなり初期に作られたコマンド。
866(1): 2011/07/28(木)16:06 AAS
>>864
:xに害はなく、むしろ:wに害がある。
867(1): 2011/07/28(木)17:58 AAS
>>866
つまり、保存するときは逐次終了するのが良いと?
868(2): 2011/07/28(木)18:12 AAS
>>867
それはまた別の話だ。
別の話をするなら、「終了しない:x」みたいなコマンドが欲しい。
今は、Ctrl-Gで編集の有無を確認して、編集有りの場合のみ :w する、
ということをしてる。
869: 2011/07/28(木)18:23 AAS
:w!があるんだから、:wは必要な時だけ書きこむことになっていればよかった。
870: 2011/07/28(木)18:26 AAS
その辺はedスクリプトとの互換性の問題があるから変えられなかったと思われ
edは「qして書き込んでないよって言われたら書きこめば?」って考えだと思われ
871: 2011/07/28(木)20:19 AAS
>>868
全部:qで閉じれば良くね?
編集したときに:wしてたら、それで閉じれないファイルって保存し忘れたファイルだけでしょ
872: 2011/07/28(木)20:24 AAS
>>868の言っているのは編集途中の保存でしょ。
さすがにそこまでタイムスタンプ保存にこだわることはないと思うが。
873(1): 2011/07/28(木)20:30 AAS
編集途中なら編集したかどうかって数秒前の話だと思うのだけど…
874(1): 2011/07/28(木)20:51 AAS
>>873
いいや。
>>863 の言うように複数のファイルを複数のviで同時に編集していたら、
そのうちのどれを実際に編集たかは自明ではなくなる。
875: 2011/07/28(木)21:22 AAS
>>874
ってことは、貴方と俺では保存のタイミングが相当に違いそうだなあ
876: 2011/07/29(金)00:06 AAS
ここの奴らなら目玉焼きの調味料で3スレ余裕だな
877(1): 2011/07/29(金)11:02 AAS
Emacs使いが小さなファイルならviのほうがええか、と思って何日かかけてこのスレ見てたら
いきなり伸びててタワラ。
上のほうで何度もタブー視されてるが、とりあえずvim使っときゃいいんだよな?とは言ってもvimインストールした時に20MBぐらい使ったのはうぇえ?って思ったが。
オリジナルのvi使う理由ってやっぱ軽いから?nviも入れてみて違いを体感できるような感じではなかったのでとりあえず考えるのもだるいのでvim使うと思うけど。
878: 2011/07/29(金)11:10 AAS
何言ってんの?
879: 2011/07/29(金)17:21 AAS
>>877
最初から入ってるのを使えばよろし
最近はnanoしか入ってないのとかも確かにあるが
大概はnviかvim-tinyかオリジナルか独自版のviが入ってると思われ
880: 2011/07/29(金)20:40 AAS
基本のviをマスターしておけば、どこのunixに行っても生きていける。
881: 2011/07/30(土)12:54 AAS
ありがとう、名言だな。
882(1): 2011/07/30(土)15:51 AAS
その基本のviについて質問です
カーソル位置から、次の単語の直前までを大文字化、もしくは小文字化する操作ってありますか?
vimやelvisなら v移動コマンド~ や g~移動コマンド で出来るようなのですが
nvi ではどちらも通用しなかったので、vi 全体で通用する方法はあるのかな、と疑問に思ったのです
字数数えて 数字~ ってするしかないですかね…?
883(1): 2011/07/30(土)16:12 AAS
tr,sed,perlとかではだめなの?
884: 2011/07/30(土)16:18 AAS
わからないなら黙ってろ
885: 2011/07/30(土)16:20 AAS
>>883
一括処理をしたいワケではなくて、編集中にやりたいんですよね
886: 2011/07/30(土)16:23 AAS
~ の一般化された方式である置換が r / R / s / S / c / C と分化している事を考えると難しそうね
887(1): 2011/07/31(日)11:19 AAS
>>882
大文字と小文字を入れ替えるだけでいいなら set tildeop して ~w。
888: 2011/07/31(日)11:49 AAS
>>887
nviやvimならse tildeopでいいんだが、
無印viではse tildeopも使えない。
889: 2011/07/31(日)20:33 AAS
vi 共通となると難しそうですね…とは言え
tildeop は知らなかったので有難いです
890: 2011/08/26(金)11:19 AAS
:x
上下前次1-新書関写板覧索設栞歴
あと 112 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.482s*