前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

VIコマンドリファレンス

自己参照用のコマンドリファレンス。 必要に応じて随時更新

コマンドモード

移動コマンド

コマンド 説明
h
j
k
l
0 行の先頭へ
^ 行の空白でない先頭へ
$ 行の末尾へ
e 単語の末尾へ
E 単語の末尾へ(句読点を無視)
w 次の単語へ
W 次の単語へ(句読点を無視)
b 前の単語へ
B 前の単語へ(句読点を無視)
[num]+G 指定した行へ
G 最下行へ
[num] + [移動コマンド] 入力数分移動
ctrl+f 次ページへ
ctrl+b 前ページへ
ctrl+d 1/2次へ
ctrl+u 1/2前へ
z + enter カレント行が画面の一番上にくるようにスクロール
z + “.” カレント行が画面の中央にくるようにスクロール
z + “-” カレント行が画面の一番下にくるようにスクロール
H 画面の先頭へ
M 画面の中央へ
L 画面の一番下へ
- 前の行の先頭へ
+ 次の行の先頭へ
t {char} charが次に現れる位置の前まで移動
T {char} charが前に現れる位置の前まで移動
f {char} charが次に現れる位置まで移動
F {char} charが前に現れる位置まで移動
; fコマンドで検索した{char}検索を繰り返す
, fコマンドで検索した{char}検索を逆に戻る

編集コマンド

コマンド 説明
u 最後の変更の取り消し(undo)
U 行を最初の状態に復元
d + [移動コマンド] ある単位でテキストを変更
dd 1行削除
D カーソル移行を削除
x 1文字削除
p カーソルの次の位置に挿入貼り付け
r 1文字置換
R n文字置換 escで終了
y コピー
Y 行をコピー
C カーソル位置から行末まで変更(c$と同じ効果)
ZZ 編集内容を保存して終了
num + [変更コマンド] 数値分だけまとめて処理
~ 大文字小文字を切り替え
J 行を連結
. 直前のコマンドを繰り返す
>G 現在の行以下をまとめてインデント

編集モードへの移行

コマンド 説明
i カーソル位置から
I 行の先頭から
a カーソル位置の次から
A 行の末尾から
s カーソル位置の文字を削除して
S 行を削除して
o カーソル位置の上の行から
O カーソル位置に下の行から
c + [移動コマンド] ある単位でテキストを削除して
cc 1行まるごと(行が消えて編集モードになる)を削除して

その他コマンド

コマンド 説明
ZZ 編集内容を保存して終了

exコマンド

exコマンド 説明
:e! 編集した内容を前回保存時の状態に戻す
:q 終了
:q! 未保存の編集箇所があっても保存せず終了
:w 上書き保存
:w! 上書き保存
:w [file name] ファイル名を指定して保存
:w! [file name] ファイル名を指定して上書き保存
:wq [file name] ファイル保存して終了
:! [command] shellコマンドの実行
:sh シェルに移行。ctrl+dかexitでviに戻る
:set nu 行番号を表示
:set wm=[num] wrap margin(自動改行の文字数)の変更

入力モード

コマンド 説明
esc 入力モードを抜ける

MongoDB サーバーをバックグラウンドで起動する

課題

コマンドラインからmongodを起動する際、バックグラウンドで起動したい。

対応

--forkオプションを使用する。 --forkオプションは必ずログの出力先と同時に指定する必要があり、--logpathで出力先を直接指定するか、--syslogオプションでsyslogに出力する。

$ mongod --fork --logpath /data/db/mongod.log

MongoDBのシェル実行結果をインデント表示する

課題

シェルスクリプトで操作しているが結果が見づらいのでインデント表示したい。

対応

pretty()を使う。

> db.values.find().sort({close:-1}).limit(1).pretty()
{
	"_id" : ObjectId("4d094f69c96767d7a01a110d"),
	"exchange" : "NASDAQ",
	"stock_symbol" : "BORD",
	"date" : "2000-09-25",
	"open" : 7500,
	"high" : 7500,
	"low" : 7500,
	"close" : 7500,
	"volume" : 0,
	"adj close" : 6679.94
}
/* Responsive: yes */