括弧に囲まれた英字を大文字に,半角スペースはアンダースコアに

想像以上に手こずったのでメモ.

こんなデータがありまして.;

<First Line>
<Second Line>
<Third Line>
<Forth Line var1> / <Forth Line var2> / <Forth Line var3>
This is <Fifth Line>
Copyright COMPANY INC. <Sixth Line>

こんなデータに対し以下のような作業をしなければならない場面に出くわしました.

やることは,
括弧に囲まれた中の文字列,その内容は半角英数字限定,をすべて大文字にし,かつ半角スペースは _ アンダースコアにする.

こんな感じになれば良しと.;

<FIRST_LINE>
<SECOND_LINE>
<THIRD_LINE>
<FORTH_LINE_VAR1> / <FORTH_LINE_VAR2> / <FORTH_LINE_VAR3>
This is <FIFTH_LINE>
Copyright COMPANY INC. <SIXTH_LINE>

結果やったこととは,手続きを 2 つに分け,このような感じに.

まず括弧内の半角英字を全て大文字にし.;

:%s/<.\{-}>/\U&/g

でもって,括弧内にある半角スペースにアンダースコア "_" を埋める.

:%s/<\(\u\+\s\)\+.\{-}>/\=substitute(submatch(0)," ","_","g")/g

一応それなりにイメージ通りの結果になってくれたのですが,絶対もっとスマートな方法があるはず,とは思っています.
今の自分はこれが精一杯の様子.

もしこれを見て,「いやいやそんな面倒なことやらなくても,ホラ...」的なことございましたら,是非々々ご教示をば.

VimVim / mistagrrr
続きを読む

ダイヤル `^M` を廻せ!

あーもーやだ.

試行錯誤を繰り返すも,一向に結果が伴わない.

これはイケナイやつです.

埒明かないので頭冷やす上でも一旦ここで切って,現状でまとめておこうかと思います.

Carriage ReturnCarriage Return / Ole Husby

改行の表記は今後,\r 推しで行く

と言うことに決めたっ,という話です.

具体的にはこんなことです.

続きを読む

桐島,NeoBundle やめるってよ

Dein Land gibt es nicht
Dein Land gibt es nicht / murdelta

野暮すぎるタイトルなのは分かっているのですが,...かとてry*1

先日 vimrc 読書会とりあげられていたこちらの rc を眺めていて,思うところあり今更ながらに NeoBundleLazy 化を試みたのです.そして結果,起動スピードがそれまでのと比較して,体感できるほどの差でより速くなった,と言う,想像以上の効果に驚き,にまにまにましていました.

と次の日,もっと何かできる事あったりしないだろうか,と引き続き Web 上で彷徨っていたら目にしたもの.;

自分の環境を全て dein.vim に置き換えたので,neobundle は今後致命的バグを直すだけになります.

「.....」

*1:さすがに,作者ご本人の名前を当てる勇気なkdヵ;sぽq

続きを読む

vimfiler.vim でも分割して開く

またいつもの「わすれるのこわい」の備忘録ではじさらしますyo.

unite.vim でウィンドウを分割して開く設定をしているのですが,同じ振る舞いを vimfiler.vim でもできるようにしたいなあ,と思ったのです.

Vim
Vim / goodiesfirst

最初ネット上で色々探し廻って,実はヘルプにがっつり書いていました,って言う...
またやった.;

nnoremap v
\ vimfiler#do_switch_action('vsplit')
nnoremap s
\ vimfiler#do_switch_action('split')

ヘルプ読め.*1

*1:と言うかそもそも,そこまでの戦闘力が無いと言う orz

続きを読む

コロン ":" の整形はフツーでいいです

何かまた忘れそうなので、備忘録。

"また..." なのですが vim プラグインvim-easy-align の設定について。

コロン : での形成は、プラグイン提供のデフォルトですと YAML(またはJSON) の記述スタイルで整形してくれます。;

mysql:
  # JDBC driver for MySQL database:
  driver:      com.mysql.jdbc.Driver
  # JDBC URL for the connection (jdbc:mysql://HOSTNAME/DATABASE)
  url:         jdbc:mysql://localhost/test
  database:    test
  "user:pass": r00t:pa55

でもここではそうじゃなく、もっとごく単純にコロン : で揃えたい、と思ったのです。
等号 = などみたく。

こんな風に。;

Joan of Arc 20 Years Anniversary Japan Tour - Tokyo 1st Night
* しゅつえん : Joan of Arc, Climb the Mind
* にちじ    : 2016/03/20 7:00PM(開場6:30)
* ばしょ    : Shibuya – TSUTAYA O-NEST
* りょうきん : 3800(前売) + 1drink / 4300(当日) + 1drink

そして色々悩んだ挙句。

.vimrc へ easy-align の設定としてこんな設定を施すことにしました。ごくごく普通に。;

let g:easy_align_delimiters = {
\ '.': { 'pattern': '\.\{2,}' },
\ '"': { 'pattern': '"', 'filter': 'v/^\s*"/', 'ignore_groups': ['String']},
\ "'": { 'pattern': "'", 'filter': "v/^\s*'/", 'ignore_groups': ['String']},
\ '-': { 'pattern': '-\{2,}'},
\ '#': { 'pattern': '\s#\+', 'ignore_groups': ['String'] },
\ ':': { 'pattern': ':',  'left_margin': 1, 'right_margin': 1, 'stick_to_left': 0 },
\ }

一番最後の行 ":" の行がそれです。

続きを読む