「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[Linuxの各種 基礎]]
--[[Windowsユーザ...情報集。>WindowsユーザがLinuxに乗り換える際に、知っておくとイイ情報集。]]
---viコマンド
---[[nanoコマンド>nano]]

*目次 [#rf4add5e]
#contents

*概要 [#ybd753e9]
-テキスト・エディタ。

-CUI時代のエディタなので(マウス、カーソル・キー)を使用しない。

--Windows系エディタとは操作方法が異なり、
---命令を覚える必要がある(画面上にメニューが無い)
---一通りのテキスト編集作業ができるようになるまで慣れが必要となる。

--ターミナル側の機能で、利用できるようになるケースもある。~
(ターミナルの機能が無いと、本項を読んでも利用が難しい感じ)

-しかし、一旦慣れてしまえばテキスト編集速度を~
得ることができるため、数多くのvi、Vim愛好家が存在する。

*詳細 [#g8d2ac65]

**操作 [#ec41068a]

***キー [#z09e0a8e]
[[ノーマル・モード>#x222875a]]でキー入力すると[[挿入モード>#y49ed629]]に。

-編集操作~

--挿入~
|キー|説明|なんの?|h
|a|カーソルの右から入力開始|Append の a|
|A|行末から入力開始||
|i|カーソルの左から入力開始|Insert の i|
|I|行頭から入力開始||
|o|現在の行の下に1行挿入し、その行頭から入力開始|Open blank line の o|
|O|現在の行の上に1行挿入し、その行頭から入力開始||

--置換
|キー|説明|なんの?|h
|r|カーソル上の1文字を他の1文字に置換|Replace の r|
|R|カーソル上の文字からEscが押されるまでの文字列を置換|~|
|s|カーソルのある1文字を他の文字列で置換|Replace の r|
|S|現在の行を他の文字列で置換|~|
|cw|カーソル位置からこの語の最後までを置換|Replace の r|
|cf 字|カーソル位置から指定した字までを置換|~|
|C|カーソル位置から行の最後までを置換|~|
|(チルダ)~|大文字/小文字を変更する|~|

--削除~
|キー|説明|なんの?|h
|x|カーソル上の1文字削除||
|X|カーソルの左の文字を1文字削除||
|:行1, 行2|d 行1 から行2 を削除||

--&ペースト
---カット
|キー|説明|なんの?|h
|dd|現在の行を削除(バッファにコピーされる)|Delete の d|
|ndd|n行、削除|~|
|dw|カーソル上の一語を削除|~|
|d$|カーソル位置から行の最後までを削除|~|

---コピー
|キー|説明|なんの?|h
|yy|現在の行をバッファにコピー|Yank の y|
|nyy|n行分をバッファにコピー|~|
|yw|単語をバッファにコピー|~|
|p|バッファ内のテキストをカーソルの[後]に挿入|Paste の p|
|P|バッファ内のテキストをカーソルの[前]に挿入|~|

--検索
|キー|説明|なんの?|h
|/<文字列>|文字列 を検索する||
|?<文字列>|文字列を検索する(逆方向)||
|n|上記に続けて、順方向へ検索する|Next の n|
|N|上記に続けて、逆方向へ検索する|~|

--傾向
---大文字・小文字で意味が逆転 or 変化する。
---数値+編集操作でn文字・行を対象に。
---w+編集操作でワードを対象に。

-移動操作~
[[ノーマル・モード>#x222875a]]中の移動操作

--h j k l~
矢印キーの代替キー
---h: 左へ移動
---j: 下へ移動
---k: 上へ移動
---l: 右へ移動

--w b e~
単語単位の移動
---w: 次の単語の先頭へ移動
---b: 前の単語の先頭へ移動
---e: 単語のお尻へ移動

--0 $~
行の先頭/末尾への移動
---0: カーソルがある行の先頭へ移動
---$: カーソルがある行の末尾へ移動

--Ctrl + X~
ページの上/下への移動
---F: 1ページ下へ
---B: 1ページ上へ
---D: 半ページ下へ
---U: 半ページ上へ

--傾向
---大文字・小文字で意味が逆転 or 変化する。
---数値+移動操作でキーをn回押下したことに。

-編集操作 + 移動操作~
編集操作と移動操作を組み合わせて実行できる。

***コマンド [#q153f903]
-[[コマンドライン・モード>#hc5ae876]]でコマンドを実行する。
-コマンドは、「:」を押した後にコマンドを入力

-開始・終了
--help~
ヘルプを表示する。

--q[!]~
viの終了(ファイルを保存して終了)。~
「!」を付けると、ファイルを保存せずに終了する。

--qa[!]~
viの終了(編集中ファイルを保存して終了)。~
「!」を付けると、編集中ファイルを保存せずに終了する。

--x~
ファイルを保存してviを終了する。~
(変更が無い場合は保存しない)

--wq[!]~
ファイルを保存してviを終了する。~
(変更されていなくても必ず保存)~
「!」を付けると、読取モードでも強制書込して終了。

--w ファイル名[!]~
ファイル書込。~
「!」を付けると、読取モードでも強制書込して終了。

--r ファイル名~
ファイル読取。~
カーソルのある行の下へ追加。

-編集操作~
幾つかある。

--行1, 行2~
行1 から行2 を削除

--&,~
& 直前のsコマンドの繰り返し

--:%s/置換え前/置換え後~
置換え前の文字列を、置換え後の文字列で置換~
もっとも近くにある文字列一つに対してのみ実行

--:%s/置換え前/置換え後/g~
ファイルの中すべての文字列に対して、置換えを行う

**モード [#ua971a79]

***ノーマル・モード [#x222875a]
初期状態

-操作
--移動操作を行う。
--[[編集モード>#y49ed629]]で、編集操作を行う。

-モード
--演算子未解決モード~
実行範囲の指示が必要なコマンドを実行した場合にVimが指示を待っている状態。

***ビジュアル・モード [#xee29535]
テキストを選択するだけのモード。

-セレクトモード~
印字可能文字が入力されると選択範囲を削除して挿入モードに入る。

-挿入ビジュアルモード~
挿入モードでビジュアル選択を開始したときのモード。

-挿入セレクトモード~
挿入モードでセレクトモードを開始したときのモード。

***挿入モード [#y49ed629]
-メモ帳ライクな操作性で、編集操作を行うモード。
--「i」で挿入を開始
--「esc」で挿入モードを終了
--...環境によって、カーソルキーが使えない気が。

-他のアプリからのコピペを行う場合、
--ターミナル内ではクリップボードが無いので、
--ターミナル経由の場合、ターミナルの機能で行う。

-挿入モードのモード

--挿入ノーマルモード~
挿入モード時に一度だけノーマルモードのコマンドを実行できる。

--置換モード~
ノーマルモードからRでこのモードに移行する。~
文字をタイプするとその分文字が置換されていく。

***コマンドライン・モード [#hc5ae876]
-コマンドは、「:」を押した後にコマンドを入力
-最後にEnterキーを押下することでコマンドを実行。

-Exモード~
コマンドライン・モードの変種。

*トラブル [#s0b16813]

**完全に忘れた [#ebf62194]

***ファイルを開く。 [#g78848df]
[[こんな感じ>VM起動後の開発環境のセットアップ(Linux)#x437df57]]で開く。

***終了する。 [#rb31a4c1]
 :q

-「:」で[[コマンドライン・モード>#hc5ae876]]へ。
-「q」で終了(quit)

***編集する。 [#k2d51367]
-「i」で[[挿入モード>#y49ed629]]へ。
-ESCで[[挿入モード>#y49ed629]]を抜ける。

***書き込んで終了する。 [#n6868c3e]
 :wq

-「:」で[[コマンドライン・モード>#hc5ae876]]へ。
-「w」で書込(write)
-「q」で終了(quit)

**エラー [#cd9abd75]

***E325:ATTENTIONエラー [#b122369e]
-Qiita
--Viで「E325:ATTENTIONエラー」の対処~
https://qiita.com/elu_jaune/items/1e81a650dec942f55c0b
--vimで「E325:ATTENTION」エラーの対処法~
https://qiita.com/hiroyukiwk/items/01d7f7ada20adffe5c74

*参考 [#w1eef3d9]

-viを終了することができない人のための~
viの使い方 | 三度の飯とエレクトロン~
https://blog.katty.in/853

-viの使い方/基本操作~
http://www.gi.ce.t.kyoto-u.ac.jp/user/susaki/command/vi.html

-viキー操作メモ(Hishidama's vi Memo)~
http://www.ne.jp/asahi/hishidama/home/tech/unix/vi.html

-vimとviって何が違うの? at softelメモ~
https://www.softel.co.jp/blogs/tech/archives/5851

-プログラマが知っておくべき100のVimコマンド | Lonely Mobiler~
https://loumo.jp/wp/archive/20080701175525/

**Wikipedia [#xe829dec]
-vi~
https://ja.wikipedia.org/wiki/Vi
-Vim~
https://ja.wikipedia.org/wiki/Vim

**Qiita [#z0ae17db]
-vimの基本操作~
https://qiita.com/tasaki-i3/items/49ebad1dca20c669ad25

-vi,vimコマンド備忘録~
https://qiita.com/legitwhiz/items/62bfea77aba21290428e

-読み取り専用ファイルを編集する~
https://qiita.com/maikya_gu/items/a0299b983ef295e23e15

**eng-entrance.com [#o1d41641]
-まずは超基本だけ! viの基本的な使い方【Linux入門】~
https://eng-entrance.com/linux-vi-base
-viコマンドについて詳しくまとめました 【Linuxコマンド集】~
https://eng-entrance.com/linux-command-vi

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS