ターミナルエディタの使い方


ターミナルエディタとは

その名の通りターミナル上で動作するエディタです

マウス操作ができなかったり、編集方法が独特だったりして、WindowsやMacのグラフィカルなエディタしか触ったことがない人には少々とっつきにくいエディタです

しかし、Ubuntu や CentOS などの Linuxマシンを触る上でターミナルエディタを全く触らないということは基本的にないと考えて良いです

そのためここでは、標準的によく使われる nano, vi (vim) エディタについて解説します


nanoエディタ

nanoエディタは、比較的新しいターミナルエディタです

vi (vim) と違って普通のエディタとあまり変わらない操作感でファイル編集が可能です

nano起動コマンド

以下のコマンドでファイルを開きます(ファイルが存在しない場合は新規作成)

$ nano <ファイル名>

基本的な使い方

  • キーボードしか使えないこと以外は、普通のエディタと同じ操作感で編集可能
  • Ctrl + O |> ENTER キーでファイル保存
  • Ctrl + X キーで編集終了

ヘルプの使い方

  • Ctrl + G キーでヘルプ画面呼び出し
  • ヘルプの表記:
    • ^X: Ctrl + X キーを表す
    • M-X: Alt + X キーを表す

vi (vim) エディタ

  • Linuxターミナル上で動作する標準的なエディタ
  • 操作が独特でとっつきにくいが、Linuxサーバーにデフォルトで入っているエディタであるため、ファイル編集のデファクトスタンダードとなっています
  • Emacs派とvi派で古くからエディタ戦争が行われています
    • 最近では nano のように癖のないターミナルエディタが出てきていたり、VSCodeがリモートファイルの編集に対応したりして、もはやエディタ戦争どころではない
  • vim とは vi にカラー表示機能等を追加した拡張版です

viの基本

  1. viには「スクリーンモード」と「挿入モード」があります
  2. 起動した時点では「スクリーンモード」になっています
  3. 編集を行うには、i, a キー等で「挿入モード」に入らなければなりません
  4. 「挿入モード」で Esc キーを押すことで「スクリーンモード」に戻ります
  • スクリーンモード
    • ファイルの保存、終了、検索等のコマンド入力
    • カーソルの移動
    • 文字、行の削除
    • コピー&ペースト
  • 挿入モード
    • 文字の追記
    • ターミナルによっては、カーソルの移動も文字の削除もできないことがある

基本的に、スクリーンモードでカーソルを動かし、編集したい場所で i (カーソル位置から編集) もしくは a (カーソルの後ろから編集) キーを押して、文字を記入します

その後、Esc でスクリーンモードに戻って、:wq コマンドで保存して終了することだけ覚えておけば何とかなります

とりあえず困ったら Esc でスクリーンモードに戻って、:q! コマンドで強制終了してしまえば良いです

vi起動コマンド

vi起動前のターミナルでのコマンドは以下の通りです(ファイルを開くコマンド)

コマンド 内容
vi file ファイルを開く なければ新規作成する
vi -R file ファイルを読み取り専用で開く
vi + file ファイルの末尾行にカーソルを合わせて開く
vi +n file カーソルを指定行(n)で開く
vi +/pattern file カーソルをパターンの文字列の場所でファイルを開く

スクリーンモードでのコマンド

カーソル移動

コマンド 内容
h, j, k, l 左、下、上、右
w 単語ごとに前に進む
b 単語ごとに前に戻る
(, ) 次の段落の先頭
ENTER 次の行の文字先頭
Shift + o 今いる行の先頭に移動
Shift + s 今いる行の末尾に移動
Shift + h 今見えている画面の最上
Shift + m 今見えている画面の真中
Shift + l 今見えている画面の最下

スクロール

コマンド 内容
Ctrl + Shift + f 次のページヘスクロール
Ctrl + Shift + b 前のページヘスクロール

検索

コマンド 内容
/ pattern petternを検索
? pattern petternを逆方向に検索
n 直前の検索を繰り返し
/ 直前の検索を繰り返し
? 直前の検索を逆方向に繰り返し

行移動

コマンド 内容
: n n番目の行へ移動する
G ファイルの末行へ移動する

編集

コマンド 内容
i カーソルの位置で編集開始
a カーソルの次文字から編集開始
o カーソルの次行に新しい行を作成
Shift + o カーソルの前行に新しい行を追加
cc 一行消して編集
x カーソルの位置の文字を削除
Shift + x カーソルの前の位置の文字を削除
dd 1行削除
yy 1行コピー
v 今いる位置から選択を開始、カーソル移動でドラッグ選択
p 削除、コピーした文字列をペーストする
. 事前のコマンドを繰り返す
u 事前のコマンドを取り消す
Shift + j 次行とカレントの行を連結する

終了

コマンド 内容
:w 保存
:wq 保存して終了
:q 終了
:q! 保存せずに終了

インデント

コマンド 内容
>> 行を右にインデントする
<< 行を左にインデントする
Ctrl + t 挿入モード時にインデントする
Ctrl + d 挿入モード時にインデントを解除する
Avatar
Ameno Yoya
Webプログラマ

経験はログに残して初めて資産となる

comments powered by Disqus

関連項目