skillup

技術ブログ

サーバー・ネットワーク

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

投稿日:

前回に引き続き、またまた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

dockerインストール

ansibleに続いてdockerについて書いていこうと思います。 Contents1 dockerとは?1.1 インストール1.2 イメージ取得&コンテナ作成1.3 commit1.4 参考リンク …

no image

Vagrantでのフォルダ共有

Contents1 vagrantとホストOSのフォルダの共有2 ネットワークアダプタ設定3 任意のディレクトリをマウント vagrantとホストOSのフォルダの共有 ディフォルトではvagrantは …

no image

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

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

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

SMTP-AUTHのメール送信

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