読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】vi から抜けられへん。保存・終了の :w :q! ZZ と検索 / ?、EDITOR とほかのエディタ【LPICレベル1】

15レスカテゴリ:Linux
1: 名無しさん

vi で編集したあと、どうやって保存して閉じるんかわからん
q 打っても文字が入るだけ

2: 名無しさん

前提のおさらい。vi はノーマルモード・挿入モード・コマンドラインモードに分かれ、挿入モードから Esc でノーマルモードに戻る。dd で行削除、yy でコピー、p で貼り付け

3: 名無しさん

>>1
まず Esc でノーマルモードに戻ってから、: を打ってコマンドラインモードで命令する

4: 名無しさん

>>3
保存と終了
:w 保存
:q 終了(変更が残ってると止められる)
:wq 保存して終了
:q! 保存せずに終了
:w! 強制的に保存
ZZ 変更があれば保存して終了(: は要らない)

5: 名無しさん

>>4
ZZ と :wq は同じ?

6: 名無しさん

>>5
ほぼ同じ。vim のヘルプでは ZZ は「変更があれば書き込んで閉じる」。変更がなければ書き込まずに閉じる。ZQ は :q! と同じ

7: 名無しさん

>>1
検索は?

8: 名無しさん

>>7
ノーマルモードで /文字列 で下に向かって、?文字列 で上に向かって探す。n で同じ向きに次、N で逆向き

9: 名無しさん

>>8
置き換えはコマンドラインモードで :s/old/new/ がその行、:%s/old/new/g がファイル全体。sed の s と同じ書き方

10: 名無しさん

>>1
crontab -e したら nano が開いた。vi にしたい

11: 名無しさん

>>10
多くのコマンドは環境変数 EDITOR(や VISUAL)でエディタを選ぶ。export EDITOR=vi を ~/.bashrc などに書いとく

12: 名無しさん

>>11
visudo の man には、SUDO_EDITOR、VISUAL、EDITOR の順に見ると書いてあった

13: 名無しさん

>>11
Debian の crontab -e は sensible-editor を通してエディタを選ぶ(crontab の man)。VISUAL や EDITOR がなければ選んだ既定のエディタになるから、Debian では select-editor や update-alternatives --config editor でも変えられる。ほかのディストリビューションでは仕組みが違う

14: 名無しさん

>>10
nano・emacs・vim もエディタの名前として範囲に入ってる
nano:画面の下に Ctrl のキーの一覧が出る、簡単なエディタ
emacs:Ctrl や Meta のキーの組み合わせで操作する多機能なエディタ
vim:vi を拡張したもの

15: 名無しさん

>>4
Esc してから :wq か :q!。保存せずに逃げる :q! は覚えといて損ないな

管理人のひとこと