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

メモリー不足でのスワップ割り当て

先日、あるサーバーでcomposerをinstallしようとしたところ、 The following exception is caused by a lack of memory or swap, …

no image

Dockerでのredis活用(redisinsightなどについて)

引き続きdockerネタですがredisを使ったネタに関して。 redis自体は以前のエントリーでも説明しましたが、一般的なキャッシュサーバーかと思います。 今回はredis自体の説明ではなくdock …

no image

サーバーの過負荷の発見 理論編

会社のテストサーバー(このブログが入っているサーバー)なんかが重くなってくると、再起動したりしているわけなんですが、CPUやメモリの使用率をみたり、といったシステマティックな運用はしてないです。 本来 …

no image

yumのリポジトリについて

CentOSでは様々なパッケージが用意されていますが、標準で使えるもの以外にもさまざまなリポジトリがあります。 Contents1 リポジトリ一覧2 有効、無効や指定してのインストールについて リポジ …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

アーカイブ