Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vim-gal-character を作ってみた。

$
0
0

この記事は Vim Advent Calender 2013 119日目の記事です。

経緯

きっかけは、たまたま見た、このツイートでした。
https://twitter.com/upgrade_ayp/status/449036965619310592

javascript:K='あいうえおやゆよわつは。';k='ぁぃぅぇぉゃゅょゎっゎo';with(document.body){for(i in K){innerHTML=innerHTML.replace(RegExp(K[i],'g'),k[i])}}focus();

翻訳とかならともかく、そんな変換しようと思ったこともないけど、

何か不思議に「ほぅ…」って思ってしまい、「この発想で何か作ろう」と思いました。

で、まんまなものを作ってしまったのですが、

これが の自作Vimプラグインです。

現在の行をギャル文字に変換します!

tgfjt/vim-gal-character

:ConvertGalCharとやると、現在行の文字列変換を行います。

プラグインが出来るまで

Vim プラグインを github で公開するまでや、

Vimプラグインが出来るまで - ぼっち勉強会を見ながら、

.vimrcにちまちま書いては怒られ書いては怒られ、

autoloadって何だ…と今も思いつつ、

もっと良ぃ実装無ぃのかな…とか、変数名とかのぉ作法もょく分からずゃってぃますo

実質のコードは下記のみですね。

function! s:GalChar()
  let before_gal_character = ["あ", "い", "う", "え", "お", "や", "ゆ", "よ", "わ", "つ", "は", "。"]
  let after_gal_character = ["ぁ", "ぃ", "ぅ", "ぇ", "ぉ", "ゃ", "ゅ", "ょ", "ゎ", "っ", "ゎ", "o"]
  let current_line = getline('.')

  let c = 0

  while c < len(before_gal_character)
    let current_line = substitute(current_line, before_gal_character[c], after_gal_character[c], "g")
    let c += 1
  endwhile

  call setline('.', current_line)
endfunction

もしもっと作りこむなら、現在の行だけではなく、

選択された textobjとか ビジュアルモードの選択にも対応してみたいです。

TravisCI

111日目のVAC、 vim-vimlint で Travis-CI 連携も使ってみました!

最後に

作り終わる直前に、osyo-mangaさんの言葉が脳裏に浮かび、

「既存のプラグイン名と被らないようにする」

検索してみたところ、

Vimでギャル文字

もぅぁるゃんo :anguished:

mattnさんが2012年に作ってたょooo

gal-vimだから名前は被ってないけど…


Viewing all articles
Browse latest Browse all 5608

Trending Articles