2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2015.05.29
開発環境・ツールVim 便利な操作方法
こんにちは、KTです。
最近、プログラムにはVimを使ってるんですけど、周りに勧めても変な目で見られるだけなので、
Vimの地位向上のために特別な設定無しで使えるVimの機能を紹介していこうかと思います。
Linuxのサーバ上のソースなんかを触るときとかに覚えとくと便利ですよ!
一回行った動作を複数回繰り返したいってことありますよね。
Vimでは標準でその機能が搭載されています。ノーマルモードで「.」を押すだけで、直前の動作を繰り返し実行してくれます。
Vimでは、置換は :%s/置換前/置換後/g コマンドで行いますが、置換後に改行をしたい場合は下記のようにします。
:%s/置換前/置換後^M/g
※ ^M の位置に改行が挿入されます。
※ ^M は、 Ctrl+v → Ctrl+m で入力します(Ctrl押したままv, mを続けて入力)
※ Macでのみ確認しています。LinuxとかWindowsは分からないです。
eclipseでいうフォーマッタ機能が、Vimには標準で搭載されています。
整形するのも簡単で、Shift + vで行選択モードになり、整形したい範囲を選択した状態で=を押すだけです。
ソース全体を整形したければ、ggVG= でOK。
ggでファイルの先頭に移動してV (Shift + v)で行選択モードになりG (Shift + g)でファイル末尾まで選択して=で整形。
Vimでは、Ctrl + a でカーソル位置の数値をインクリメント、Ctrl + x でデクリメントできます。
CSSなんかで、幅を微調整するときなんかに便利ですね。
ちなみに、先に任意の数字を入力しておくと、その数分インクリメント、デクリメントできるので、
10(Ctrl + a)とすることでカーソル位置の数値を10インクリメントすることもできます。
※ なお、注意点としては、先頭に0があると8進数とみなしてしまうので、007をインクリメントすると010になってしまいます。
事前に
:set nrformats=
とコマンドを実行しておくことで回避できます。
※ 長々と説明しちゃってるので、よく使うコマンドのみ知りたい方は説明すっとばしてもOK
文字列を、単語毎じゃなくて特定の単位で操作したいことって結構ありますよね?
例えば、「括弧の中全部」や「シングル/ダブルクォーテーションで囲われた範囲」なんかをコピーしたり切り取ったり。
Vimでは、↑で書いたような、任意の単位で文字列を扱う機能が標準でサポートされています!
その機能を使うためのコマンドは(基本的には)たった3文字。例えば vi” や yat のような感じ。
1文字目→何をしたいのか(v:選択、y:コピー、d:削除、c:置換 等々) 2文字目→3文字目で指定した範囲の内側/外側指定。 i か a の2種類のみ(i:内側、a:外側) 3文字目→範囲指定。特定のアルファベット、開き括弧、クォーテーション等を指定可能。 開き括弧を指定するとその括弧が範囲となる。例:[ を指定→[〜]で囲われた範囲 特定のアルファベットは、例えば w:単語、t:HTMLタグ 等々
・ ciw
現在のカーソル位置の単語を置換(削除して挿入モード)
・ ci”, ca”
現在のカーソル位置の”〜”で囲われた範囲(ca”の場合は”も含む)を置換
・ ci(, ca(
現在のカーソル位置の(〜)で囲われた範囲(ca(の場合は(も含む)を置換
・ cit, cat
現在のカーソル位置のHTMLタグの中(catの場合はHTMLタグも含む)を置換
だいたい使うのはこんなところです。
なお、上で述べた通り、cをvにすれば選択、dにすれば削除、yにすればコピーします。
(ちなみに、なぜコピーなのにyなのか。Vimではコピーのことをyankと呼ぶからです)
ね、簡単でしょう?
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索