skillup

技術ブログ

サーバー・ネットワーク

vimの小ネタ(主にテキスト置換系に関して)

投稿日:2016年2月4日 更新日:

前回に引き続き、またまたvimの小ネタなど

マクロ

エディタ上である動作を記録させておきたい場合、q+任意の文字(例えばa)+任意の動作+q で保存し

@aで再現することができる。100@aで同じ動作を100回繰り返し

例えば、下記の行の最後すべてに;(セミコロン)を入れたいとき

aaa
bbbbb
…(これが100行あったとする)
cccc

q+a+$(文末移動)+i(入力)+セミコロン+w(次の語句に移動)+qで保存し、100@aで一気に行末にセミコロンを入れられる。

単純な置換

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

cが入らないと確認せずに一気に置換される。

%s→100,120sなどとやると100行目から120行目というように範囲を絞れる。

改行系の置換

aaa,bbb,cccを

aaa
bbb
cccと改行したいとき

%s /,/^M/gで変換できる(^MはCtrl+V,Ctrl+Mで出力できる)。逆に改行された状態からカンマ状態に戻したいときは%s /\n/,/g

一括置換

args *.cで同階層の.cファイルをすべて対象にする。:lsで対象となっているファイル一覧がわかる

再帰的に下位フォルダ内も対象とるする場合は:args **/*.c(全階層を対象にする)

この状態で対象ファイルに対して置換を行いたい場合、下記コマンドで確認しながら一気に置換ができる.
argdo %s/変更される文字/変更したい文字/gc | w

argdoは開いているファイルすべてが対象となり、| w で該当ファイルを保存。

応用として文字コードの置換も行える。

argdo set fenc=utf8 |w

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

執筆者:


comment

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

関連記事

no image

wordpressでのnginx設定

ここ1年、apacheではなく、nginxでサービスを作ることが多いため、設定にだいぶ慣れてきました。 今回はwordpressの設定です。 バーチャルホストでsample.comとアクセスをするとw …

no image

SMTP-AUTHのメール送信

メールに関して以前にもこんなこと書きましたが、今更ながらトラブルが起きたのでしっかり理解しておかないと・・・ 基礎が弱いと困るのう・・・ ロリポップなどのサーバーでmb_send_mailを打てばよく …

no image

ECSについて

AWSでwebアプリを立ち上げる場合、基本的にはEC2+RDS(小規模な場合は使わないケースもあるかも・・)+アルファの構成が多いと思うのですが、Dockerでコンテナイメージをもっていれば、コンテナ …

no image

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

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 3分間 NetWorking Contents1 スニーカーネットからリソース共有2 LANとWAN3 OSI参照モ …

no image

nginx基本

データベースについて勉強していましたが、実務でnginxを触る機会があったので、これを機に勉強。 Contents1 参考文献2 nginx基礎3 コアモジュール4 httpモジュール5 設定ファイル …