skillup

技術ブログ

サーバー・ネットワーク

vimの基本的な使い方 設定ファイル、基本コマンド他

投稿日:

もう4年ぐらいの付き合いになる憎らしくもかわいいエディタvi(vim)について。

雑誌に特集があったのでこれを機にまとめてみました。シリーズものになるかも・・・

Vi(vim)とは?

Linuxに標準でインストールされているエディタ。操作法が独特であることから初心者殺し。

通常はviの派生形であるvimが使われることが多い。WindowsやMacで使うときはgVimが使える。

MacにはMacVimがあるらしいのですが詳細を知りません・・(汗)。

基本的な使い方

vi(vim)が初心者殺しな点といえば複数のモードがあり、基本操作を全てコマンドで行わなければいけないところでしょう。

私は先輩が使っていたので、強制的に使わざるを得ない環境だったのですが、なかなかこれになれるのは大変・・・。

基本的な説明を書こうとおもったのですが、私よりはるかにうまくまとめてあるページがあったのでこちらを。

脱初心者を目指すなら知っておきたい便利なVimコマンド25選 (Vimmerレベル診断付き)
http://qiita.com/jnchito/items/57ffda5712636a9a1e62

vimおすすめコマンド

特に頻度が高く、私が個人的におすすめしているものを書きます。

単語や関数の入力補完

Ctrl+N

Eclipseはこれが不完全なのがちとつらいです。

選択した文字と同一のものをハイライト&移動

Shift+*

変数名が間違ってないかの確認などに使います。

このあとNで移動できます。

テキストの置換

%s /変更される文字/変更したい文字/gc 置換

行数を指定できたりと、いろいろとバリエーションは豊富です。

フォーマット

選択範囲を絞ってShift =

インデントが崩れているときなどに有効です。ただし、配列の並びなどはちょっと気に入らないかも・・・

矩形選択

Ctrl+V →縦移動→入力モード→Shift+i->esc 矩形選択

画面分割

sp(上下に分割)、vs(左右に分割) 画面分割

コントローラ―的な処理を書く場合、メソッドを呼び出しているところと、定義しているところを同時に見たいときなど。

マクロ(動作の記憶)

q+任意の文字+任意の動作+q(記憶)→@任意の文字 動作の復元

ウルトラ使えます。

ファイル全体の置換&検索

対象ファイルの読み込み(再帰的なものもすべて読み込む)

args **/*

対象拡張子を選ぶこともできます。

argdo %s/hoge/fuga/gc | w

argsでファイルを開いた後,hogeという文字をfugaに確認しながら置換し、保存します。

vimgrep /hoge/  **/*.*  | cw

再帰的にファイルを検索し、別窓に表示。

設定ファイル

次にめんどいのが設定ファイルです。通常はメニューでオプションとかでこれらの設定をできることが多いんですけどね。

gVimでは一部そういう機能もありますが、vimの場合は全て書いていかないといけないです。これがメンドイ。

最初のうちはディフォルトで使い、自分なりにここはこうしたい、となったときに見てみるのがいいでしょう。

初めてやろうとすると頭が爆発するでしょう。

HOMEディレクトリ/.vimrc やHOMEディレクトリ/.vim/vimrc。Gvim版では同様の改装にあるgvimrcでGUIの設定をすることができます。

下記、設定ファイルで行うことのできる基本的なオプションの設定について

オプション追加( set ~)

基本的にオプションの設定は上記の設定ファイルにset {オプション名}をつける。はずすときはset no{オプション名}

例:set number 行番号の設定(はずすときはset nonumber)

よくある設定

個人的によく使うものなど

文字コードの自動判定

set fileencodings=utf-8,sjis,cp932,euc-jp,iso-2022-jp

左から順番に読んでいきます。たまに間違えて文字化けすることがあります(汗)

内部文字コードをutf8に設定

set encoding=utf-8

ユーザーは意識しませんが、vim内部で使う文字コードの指定です。

ファイル書き込み時の文字コードを設定する

set fileencoding=utf-8

通常のファイルの文字コード指定です。コマンドラインではsetl fenc=utf-8と省略形でもいけます。

文字コードを指定して再読み込み

e ++enc=cp932

誤った文字コードでvimが読んでしまい、文字化けしたときに再読み込みなど。

改行コードの読み込み

set fileformats=unix,dos,mac

保存するときの改行コード指定

set fileformat=unix

文字コード関連リンク

http://d.hatena.ne.jp/over80/20080907/1220794834

http://itcweb.cc.affrc.go.jp/affrit/faq/tips/vim-enc

autoindentを有効にする

set autoindent

タブ→空白の置換

set expandtab 自動的にタブを空白に置換します。

ファイル内のタブの文字幅

set tabstop=4 ファイル内のタブ幅の指定です。

set softtabstop=4 tabが押されたときに実際に挿入される空白の文字数

set shiftwidth=4 オートインデント時に挿入される空白文字数

タブ幅関連リンク

http://d.hatena.ne.jp/waku_52/20110325/1301039968

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

正規表現その2

10/28に書いた正規表現に関しての追記です。 Contents1 覚えておきたいメタ文字2 留意点 覚えておきたいメタ文字 よく出るメタ文字の復習です。 メタ文字 メタ文字の説明 [] いずれかの1 …

no image

zabbixエージェント設定

本日はzabbixのエージェント設定について。 zabbixでは監視される側と監視する側があり、する側は通常Zabbix Serverになり、される側はzabbix Agentになります。 要はサーバ …

no image

webサーバーがどのように動いているか

webがリクエストを受け取って画面に表示するまでの流れをおさらい。基本です。 Contents1 全体の流れ2 参考文献 全体の流れ 1 ユーザーがブラウザのURL欄にhttp://www.examp …

no image

ネットワーク基礎 OSI参照モデルなど

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 http://www5e.biglobe.ne.jp/aji/3min/ Contents1 スニーカーネットからリ …

no image

サーバー設定ファイルについて apache

以前から気になっていたサーバーの設定ファイルに関しての疑問について調査。 本日はapacheについて学習しようと思います。 通常のapacheの設定ファイルは/etc/httpd/conf/httpd …