Presentation is loading. Please wait.

Presentation is loading. Please wait.

vi/Vim について ~エディタ・ウォーズエピソード1~

Similar presentations


Presentation on theme: "vi/Vim について ~エディタ・ウォーズエピソード1~"— Presentation transcript:

1 vi/Vim について ~エディタ・ウォーズエピソード1~
北海道大学院理学院 博士 1 年 荻原弘尭

2 目次 はじめに テキストエディタ vi Vim まとめ 付録 

3 今回の発表で誤った知識を持ったという場合や何か問題が起こった場合でも私は責任を持ちません.
はじめに - 注意書き - Web で調べたり軽く本を読んだ程度の知識なので曖昧で適当な知識です 質問にはなるべく答えられるようにしますが答えられない場合もあります 拙い説明も多々あります 今回の発表で誤った知識を持ったという場合や何か問題が起こった場合でも私は責任を持ちません. つまり何が言いたいかというと 詳しく知りたいなら ggrks

4 はじめに - なぜ今回 vi/Vim を説明するか –
エディタ戦争 プログラミングを行う人々の中でどのテキストエディタが一番良いかというテーマの論争 大きく分けて vi 派(vimmer), Emacs 派(Emacists), nano派(どういうかわかりません)がある vi/Vim は嫌われ者 (初めてやる人にとって)わかりにくい あの人の画面黒いね なぜ私が vim を使っているか 情報実験 INEX で使用するように言われたから 操作が単純で打ちやすい less や lv などのよく使う別のツールにも同じコマンド操作ができるから エディタは自分が使いやすいものを好き勝手に使っていい. しかし, 自分が使いやすいエディタを選択するときにとっつきにくいからと言ってvim を選択肢から除外することはしないでほしい

5 テキストエディタ コンピュータでテキストファイルの作成・編集・保存するソフトウェア 様々なテキストエディタ メモ帳 秀丸 nano
emacs vi/Vim etc

6 vi - viとは? - Visual editorが由来 Virus が由来
UNIX 系 OS で良く用いられている画期的なテキストエディタ Bill Joy によって開発された ラインエディタ ex をベースとしたスクリーンエディタ 現在では純な vi はほぼ使われていない Vim や nvi 等互換エディタが使われている Visual editorが由来 Bill joy: Cシェルや TCP/IP の実装, BSD を創設したすごい人 現在の Solarisである SunOS の開発の主要メンバー

7 vi - vi の特徴- モードを持つ 動作が軽い 環境に依存しない 単純なキー入力で操作できる Normal Insert
Beep repeatedly ビービー鳴らす Break everything: 何もかも台無しにする 動作が軽い 環境に依存しない 大体のディストリビューションに互換のものが存在する 単純なキー入力で操作できる 修飾キーを使わなくても大体の操作はできる Normal ファイル操作やカーソル操作をする基本のモード Insert テキストの編集をするモード Beep repeatedly びーびー鳴らすモード Break everything 何もかも台無しにするモード

8 vi - vi の利点 - 操作を覚えるまでが大変だが覚えたらとても編集が楽になる less や lv 等で同じ操作ができる
UNIX 系なら大体入っている 動作が軽い

9 vi - vi の歴史 - UNIX 誕生した頃(1970年頃)はプリンタとタイプライタ端末でエディットしていた
 ラインエディタを用いていた. ラインエディタ テキストエディタの一つ 編集は行単位 編集時には編集行のみ表示されて, テキスト全体は見ることができない(編集と表示でモードが分かれている) ディスプレイなども普及し, 表示速度などが増加 Bill Joy が ラインエディタ ex を基にスクリーンエディタ vi を作成 vi の特徴はほぼ ラインエディタを基にして作ったため

10 vi - vi 互換エディタ - 現在 vi はほぼ使われていない vi 互換エディタ vi 互換エディタが使われている
vi のライセンスなどの問題で BSD や SunOS のみしか使えなかった vi 互換エディタ 基本的な操作は vi と同じエディタ 独自の拡張性を持つ elvis nvi Vim Elvis: Steve Kirkendallが開発した互換エディタ Nvi 4.4BSD に実装された互換エディタ, 高い互換性と拡張機能がある

11 Vim - Vim とは - vi をベースとした高い拡張性を持つ vi 互換エディタ
1980 年頃に Bram Moolenaar によって Amiga 向けに開発された 当初は Vi IMitation 由来であり, 1992年頃からは Vi IMproved 由来 読み方は ヴィムあるいは ヴィアイエム 現在では多くの Unix 系 OS で採用されている標準エディタ 現在のバージョンは 7.4 Vi Imitation: vi のマネ Vi Improved vi の改良

12 Vim - Vim の特徴 - 基本操作はほぼ vi と同じで vi と高い互換性を持つ 大きく分けて3つのモードが存在する
nomarl : 基本のファイル操作やカーソル操作を行う Insert : テキストの編集を行う Visual : テキストの選択を行う 高い拡張性を持つ どこでも同じ Vim とは限らない vi の軽快さはあまりない GUI 操作もできる gvim あるいは vim -g

13 Vim - Vimの使い方超基礎編 1- Normal モードへの移動 Insert モードへの移動 Visual モードへの移動
ESC(どのモードでも可), ctrl+c(Normal モード以外) Insert モードへの移動 a, A, i, I, o, O Visual モードへの移動 v, V, ctr+v (それぞれ文字選択, 行選択, 矩形選択) ファイルの書き込み方 :w (write の略) ファイルの閉じ方 :q (quite の略) ※但し書きがなければすべて Normal モード時のこと

14 Vim - Vimの使い方超基礎編 2- アンドゥ(やり直し) リドゥ(やり直しのやり直し)
カーソル移動(Normal モード, Visual モード) h : 左に移動 (覚え方: Hidari) j : 下に移動 ( 覚え方: キーボードを見たら日本語で「ま」なので「真下」) k : 上に移動( 覚え方: Kita) L : 右に移動( 覚え方: left じゃない方) 覚え方はアンサイクロペディアの vi の項を引用 アルファベットに意味はなくホームポジションで押しやすいようになっている アンドゥ(やり直し) u リドゥ(やり直しのやり直し) ctr + r

15 とりあえず vimtutor をやってみよう
Vim - Vimの使い方超基礎編 2- ヤンク(コピー) y ペースト(貼り付け) p 文字削除 x 削除(切り取り) d ヤンクや削除の範囲選択はカーソルの移動コマンドや回数(何文字か)などと組み合わせて選択できる マニュアルを見る :help [] ([]はコマンド) とりあえず vimtutor をやってみよう 更にわからないことはマニュアルを読もう

16 Vim - 僕の考えた最強の Vim - Vim は拡張性を持つ 自分でよく使う設定を初期設定にする 独自のスクリプト言語を持つ
自分でよく使う設定を初期設定にできる (ただし推奨されないが元々の vi でもできた) 他の人が作った vim スクリプトなどのプラグインをインストールできる 自分でよく使う設定を初期設定にする $HOME/.vimrc という設定ファイルに書き込む 書き方は基本的には vim のコマンドと同じ

17 Vim - 僕の考えた最強の Vim - ~私のおすすめ設定 最低限編~
構文強調 syntax enable コマンドライン補完をする set wildmenu set wildchar=<tab> 改行コードの自動認識 set fileformats=unix, dos,mac ビープ音を鳴らさない set vb t_vb= 文字コードの設定(デフォルトを utf-8 にする) set encoding=utf-8 set fileencoding=utf-8 set fileencodings=ucs-bom,iso-2022-jp,sjis,cp932,euc-jp set fileencodings+=,ucs-21e,ucs-2,utf-8

18 Vim - 僕の考えた最強の Vim - ~私のおすすめ設定 便利編~
バックスペースキーで削除できるものを指定 set backspace=indent,eol,start カーソルを行頭, 行末で止まらないようにする set whichwrap=b,s,h,l,<,>,[,] 入力中のコマンドを表示 set showcmd ウィンドウの幅より長い行は折り返して表示 set wrap

19 Vim - 僕の考えた最強の Vim - ~私のおすすめ設定 更に便利編~
常にステータスラインを表示 set laststatus=2 ステータスラインに設定をいろいろ表示 set statusline=%t%=\[TYPE=%Y]\[FORMAT=%{&ff}]\[ENC=%{(&fenc!=''?&fenc:&enc)}]\ \ %l/%L,%v\ \ %p%% 全角スペースを表示 augroup highlightZenkakuSpace autocmd! autocmd VimEnter,ColorScheme * highlight ZenkakuSpace term=underline ctermbg=white guibg=white autocmd VimEnter,WinEnter * match ZenkakuSpace / /augroup END highlight は文字の設定をするコマンドです, cterm とは cui 系のターミナルのことです

20 まとめ vi はラインエディタベースのスクリーンエディタ Vim は vi の上位互換エディタ 操作を覚えるまでは大変だが覚えると病みつき

21 付録(便利な使い方)1 カーソル移動 gg G numgg w b $ 一番最初の行に行く 一番最後の行に行く
単語単位で前方向に移動する b 単語単位で後ろ方向に移動する 行の最初へ移動 $ 行の最後へ移動

22 付録(便利な使い方)2 現在のカーソルがある行を調べる 削除 ctr + g dw dd D カーソルがある単語を削除
dnumw (あるいはnumdw)で num 個の単語を削除できる dd 一行削除 numdd でnum 行削除できる D カーソルがある文字以降の一行を削除

23 付録(便利な使い方)3 検索 置換 /string # n N r R C :s/string1/string2
カーソル位置の単語の検索 n 前方向に検索された候補を変える N 後ろの方向に検索された候補を変える 置換 r 一文字置換 R 文字の置き換えモードが始まる C カーソルがある文字以降を切り取り Insert モードに移行する :s/string1/string2 カーソルがある行の最初のstring1 を string2 に置換する :%s/string1/string2/gc テキスト全体の string1 を string2 に置換する

24 付録(便利な使い方)4 バッファ(ウィンドウのこと)を開く :new file :split file :vsplit file
file を指定しないと今開いている file を展開する :vsplit file 左方向の新たなバッファに file を開く

25 付録(便利な使い方)5 選択した行の初めに同じ文字を入れる ファイルの差分をマージする ファイルエクスプローダーを使う
ctr + v → 入れたい行を選択→I(大文字アイ)→好きな言葉→ESC 行選択で $ を押して I を A にすると選択した行の最後に同じ文字を入れられる ファイルの差分をマージする vimdiff file1 file2 (あるいは vim –d file1 file2) file1 と file2 で違う箇所を強調して表示する [c 違いがある場所に前方向に移動する ]c 違いがある場所に後ろ方向に移動する dp 現在カーソルがあるバッファから差分をコピー do 現在のカーソルがあるバッファへ差分をコピー ファイルエクスプローダーを使う :Se

26 参考文献 北浦訓行, 小島範幸, 大木敦雄, 2009,「はじめての vi & Vim」, 技術評論社 welcom home :vim
vi – ウィキペディア vi – アンサイクロペディア Vim – ウィキペディア Emacs – アンサイクロペディア エディタ戦争 – ウィキペディア Vim Replacement Icon


Download ppt "vi/Vim について ~エディタ・ウォーズエピソード1~"

Similar presentations


Ads by Google