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

メール送信に関して その1 おおまかな送受信の仕組み

php-fpmを変えてから大分動きがよくなりましたね・・サーバーのレスポンスがはやい・・ 今回から数回に分けてメール送信の仕組みについて学習していこうと思います。 インフラ系の知識がやっぱり怪しいもん …

no image

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

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

no image

自力での監視

Zabbixの勉強を進めていますが、マニュアル通りに設定していて、中で何をやっているかをあまり理解していなかったりします。 それだとちょっとまずいのでZabbixでの構築とともに自力での監視スクリプト …

no image

nginxのSSL通信や認証、ログに関して

今回はnginxでSSL通信をする際の注意点など。といっても、それほど難しくないようでSSL通信をするには主に2つだけです。 SSLを利用することを明示 サーバー証明書と秘密鍵を指示する またngin …

no image

Linuxコマンドでのテキスト整形 CSV系の処理など

以前、対テキストファイル系のLinuxコマンドの使い方を紹介しましたが、その関連エントリーを。 今回やるのはCSV系の処理ですね。 id name age 1  suzuki 35 2  tanaka …