Linux はコンソールテキストエディタの多くの代替品を提供します。それらは:
vim
: 力強く軽量な BSD の遺産であるエディタ。VI iMproved.
emacs
: 究極かつ巨大な GNU の遺産であるエディタ。 RMS (Richard M.
Stallman) オリジナル。
xemacs
: 元々は Lucid による Emacs: The Next Generation。
mcedit
: 新参の GNU エディタ。元々は mc
の
内部組込みエディタ。MC 内のエディタ, 第
4.2.5 節 をご覧ください。
ae
: Potato のデフォルトのエディタ。やめときましょう。
nano
: Woody のデフォルトのエディタ。pico
をエミュレート。
joe
: WordStar または TurboPascal の古豪。
jed
: 高速かつフル機能を持った、Emacs のキーバインディングを持つ
メニュ指向のエディタ。
jove
: Emacs キーバインディングを持つ非常に小さなエディタ。
nvi
: 新 vi。オリジナルの vi と同じバグを持つ。
デフォルトのエディタを変更するには、update-alternatives --config editorを 使用してください。又、使用するエディタを決定するために環境変数 EDITOR 並びに VISUAL を用いることには多くの問題があります。 MC 内のエディタ, 第 4.2.5 節 をご覧ください。
また、数種の X ベースのテキストエディタも言及する価値があります:
gvim
: GUI 付きの Vim (vim
および vim-gtk
パッケージ)
emacs
: 唯一の真の Emacs (X を自動検知)。
xemacs
: 次世代の Emacs (X を自動検知)。
これらの xclient コマンドは -fn a24 のような標準的な オプションを引数に取り、私のような古株にも優しく使えます :) X クライアント, 第 9.4.4 節 をご覧ください。
/bin/
にはいくつかのエディタが存在します。/usr/
に
アクセスできない場合にファイルの編集を容易にするため、これらのエディタのうち
一つをインストールすべきです。
elvis-tiny
: 最小限の vi エディタ (vi
で起動)
nano-tiny
: 最小限の 非 vi エディタ (nano-tiny
で起動)
nano
: 最小限の 非 vi エディタ (nano
で起動) (Sarge)
ed
: 最小限のエディタ (常に存在するが使用しがたい)
Vim 起動中に <F1> を押すことにより、 "VIM - main help file" ドキュメント をご覧ください。
<F1> ヘルプ <esc> ノーマルモードに戻る V ビジュアルモード i 挿入モード : コマンドライン :set tw=72 テキスト幅を 72 に設定 <F11> 挿入(ペースト)モード :r! date -R RFC-822 日付を挿入 qa レジスタ a にキーストロークを記録 q キーストロークの記録を停止 @a レジスタ a からキーストロークを実行 :edit foo.txt foo.txt をロードし、ファイルを編集 :wnext 現在のファイルを保存し次のファイルを編集
q および @ はシンプルなマクロ記録および再生に使用できます。 例えば、カーソル位置の単語に HTML イタリックタグを挿入するマクロを作成するには、 qii<i>^[ea</i>^[q と入力してください。(ここで ^[ は ESC キー入力) そして単語の始まりで @i を入力すると、<i> および </i> タグが挿入されます。
Vim で GnuPG を使う, 第 14.4.2 節 もご覧ください。
<F1> ヘルプ <F10> メニュ C-u M-! date -R RFC-822 日付を挿入
エディタを起動: emacs filename vim filename vi 互換モードで起動: vim -C vi 非互換モードで起動: vim -N コンパイル時のデフォルトで起動: emacs -q vim -N -u NONE
終了: C-x C-c :qa /:wq /:xa /:q! 中断/コマンドモード: C-g <esc> 1字戻る(左): C-b h 1字進む(右): C-f l 1行進む(下): C-n j 1行戻る(上): C-p k 行の先頭に飛ぶ(^): C-a 0 行の最後に飛ぶ($): C-e $ 複数回コマンドを実行: C-u nnn cmd nnn cmd 複数のコマンド: M-digitkey cmd ファイルの保存: C-x C-s :w file バッファの先頭に飛ぶ: M-< 1G バッファの最後に飛ぶ: M-> G 1スクリーン先にスクロール: C-v ^F 半スクリーン先にスクロール: ^D 1行先にスクロール: ^E 1行後ろにスクロール: M-v ^B 半スクリーン後ろにスクロール: ^U 1スクリーン後ろにスクロール: ^Y 他のウィンドウにスクロール: M-C-v カーソルの下を削除: C-d x カーソルから行末まで削除: C-k D 順方向インクリメンタル探索: C-s 逆方向インクリメンタル探索: C-r 順方向一括探索: C-s enter / 逆方向一括探索: C-r enter ? 順方向正規表現探索: M-C-s 逆方向正規表現探索: M-C-r 順方向正規表現一括探索: M-C-s enter / 逆方向正規表現一括探索: M-C-r enter ? ヘルプ: C-h C-h :help Apropos: C-h a キーバインドヘルプ: C-h b :help [key] Info ヘルプ: C-h i メジャーモードヘルプ: C-h m ヘルプチュートリアル: C-h t :help howto Undo: C-_ u Redo: C-f ^R カーソル位置をマーク: C-@ m{a-zA-Z} マークした位置に移動、再入力で元に戻る: C-x C-x 現在のファイルのマークに飛ぶ: '{a-z} あらゆるファイルにおいてマークに飛ぶ: '{A-Z} 領域コピー: M-w {visual}y 領域削除: C-w {visual}d Yank: C-y 以前削除したバッファを Yank: M-y p 領域をを大文字に変換: C-x C-u {visual}U 領域を小文字に変換: C-x C-l {visual}u スペシャルキャラクタを挿入: C-q octalnum/keystroke ^V decimal/keystroke 置換: M-x replace-string :%s/aaa/bbb/g 正規表現を用いた置換: M-x replace-regexp :%s/aaa/bbb/g 置換問合せ: M-% :%s/aaa/bbb/gc 置換問合せ: M-x query-replace 正規表現を用いた置換問合せ: M-x query-replace-regexp ファイルを開く: C-x C-f :r file ファイルをセーブ: C-x C-s :w 全バッファのセーブ: C-x s :wa 別ファイルにセーブ: C-x C-w file :w file バッファのプロンプト: C-x b バッファ表示: C-x C-b :buffers 読み込み専用にトグルする: C-x C-q :set ro プロンプトを出し、バッファを削除する: C-x k 縦に 2分割する: C-x 2 :split 横に 2分割する: C-x 3 :vsplit (ver. 6) 他のウィンドウに移動する: C-x o ^Wp 現在のウィンドウを削除する: C-x 0 :q 他のウィンドウを削除する: C-x 1 ^Wo シェルをバックグラウンド起動する: M-x compile バックグラウンド起動したシェルを殺す: M-x kill-compilation make を起動: :make Makefile エラーメッセージを調べる: C-x` :echo errmsg シェルを起動し、記録する: M-x shell :!script -a tmp ...clean BS, ... :!col -b <tmp >record シェルの記録を保存/再呼び出し: C-x C-w record :r record シェルを起動する: M-! sh :sh コマンドを起動する: M-! cmd :!cmd コマンドを起動し、挿入する: C-u M-! cmd :r!cmd フィルタを起動する: M-| file {visual}:w file フィルタを起動し、挿入する: C-u M-| filter {visual}:!filter オプションを表示する :se[t] {option}? オプションをデフォルトにリセットする :se[t] {option}& ブーリアンオプションをリセットする :se[t] no{option} ブーリアンオプションをトグルする :se[t] inv{option} 72列でテキストをラップする :se tw=72 ラップしない :se tw=0 自動インデント :se ai タブを広げる :se et 特別なコマンド (mail) :se comments=n:>,n:\| GDB を起動 M-x gdb describe GDB mode C-h m 1行進める M-s 次の行 M-n 1命令進める (stepi) M-i 現在のスタックフレームを終了 C-c C-f 続行する M-c up arg frames M-u down arg frames M-d copy number from point, insert at the end C-x & ブレークポイントを設定 C-x SPC
Vim の全機能と文法強調を使用するには、~/.vimrc
または
/etc/vimrc
が次の行を含むようにしてください。
set nocompatible set nopaste set pastetoggle=<f11> syn on
ペーストモードは端末でのカットアンドペースト操作にと自動インデントとの 干渉を避けることができます。これは単なる ":set noai" 以上のことを行います。
Vim への GnuPG の統合については Vim で GnuPG を使う, 第 14.4.2 節 をご覧ください。
apt-get install exuberant-ctags を行い、ソースファイルにおいて
ctags
を起動します。function_name が始まる行に
ジャンプするため、Vim 上で:tag function_name と
タイプします。Tag は C、C++、Java、Python 並びに他の多くの言語に対して
働きます。
Emacs でも同様の Ctags を利用できます。
Vim のコマンドモードから so \$VIMRUNTIME/syntax/2html.vim を 実行すると構文強調されたテキストから HTML テキストへの変換が行えます。 :w file.html および :q でセーブします。C コードなどで 役立ちます。
vim
によりスクリーンを分割する
vim
は複数に分割したスクリーン環境において複数のファイルを
編集可能です。詳細は :help usr_08.txt とタイプしてみてください。
異なったファイルに対してスクリーンを分割するには、vi コマンドプロンプトで 次のようにタイプします。
:split another-file :vsplit another-file
又はシェルプロンプトにおいて
$ vi -o file1.txt file2.txt # 水平分割 $ vi -O file1.txt file2.txt # 垂直分割
を実行することによりマルチウィンドウの vi を実現できます。
$ vimdiff file.txt~ file.txt # file.txt の最近の変更点を調べる $ vimdiff file.en.sgml file.fr.sgml # 翻訳版との相異点を調べる $ gvimdiff file.txt~ file.txt # X における上記コマンド
以上のコマンドによりオリジナルとバックアップファイル間の相異点をうまく表示 できます。SGML ではタグとマッチするので、SGML モードにおいて翻訳を比較すると うまく動きます。
Ctrl-W コマンドを用いた特別なカーソル操作コマンドは次の通り:
Ctrl-W + ウィンドウサイズを広げる Ctrl-W - ウィンドウサイズを狭める Ctrl-W h 左のウィンドウに移動 Ctrl-W j 下のウィンドウに移動 Ctrl-W k 上のウィンドウに移動 Ctrl-W l 右のウィンドウに移動 ...
スクリーンのスクロール制御には次のコマンドを使用してください。
:set scrollbind :set noscrollbind
Debian リファレンス
CVS, 2005年 4月 3日 月曜日 22時59分00秒 UTC時間osamu@debian.org
tsuno@ngy.1st.ne.jp