mac, Termina.app, 日本語入力, 切り替え | |
MacVimならできるんだけど、Terminal.app上では無理なのかな…。
基本的にヤンクしているものを交換したい場合って
結構あって、
public void hoge() { } // getFuga()でなんかとってくる
とかなっているときに、メソッド名をgetFugaにしたかったりする。
伝わらない気もするけど、よくする。
んで、このときはたいてい
getFugaをyiwかywしてhogeのh前のスペースまでいって
Pldwでメソッド名をかえていた。
とりあえず不便なわけではなかったけど、そうしていた。
そんなときkana神が日記で面白そうなpluginを公開していたんで、
導入してみた。
結果から先に書くと
yankしたものをRw(or Riw)でさきほどと同じようなことができるようになった!
(keymapをRにしてある。REPLACEモードはどうしても使わないので。)
テキストオブジェクトを利用できるのがでかい!
導入方法はドキュメントに全部書いてありますwww
が、一応やったこと記載。
http://www.vim.org/scripts/script.php?script_id=2782
http://www.vim.org/scripts/script.php?script_id=2692
の両方を.vimとかにいい感じに配置。
.vimrcに
map R <Plug>(operator-replace)
みたいに書く!
defaultでは_になってるみたいだけど
設定例では_になってるみたいだけど
個人的にはRのほうが近いこと、直感的、さっきもいったけど
REPLACEモード絶対使わないなので、Rにマップした。
以上、簡単!
会社のマシンにも入れよう。
javascript | |
今日思いついたから書いてみた。
noremap \c p_iconsole.log(<ESC>A);<ESC>yypkf(a'<ESC>$F)ha='<ESC>=j
yank して\c
jsで
var hoge = document.getElementsById('hoge');
とかやったときhogeとかコンソールに出力したくなる。
そんなときhogeをyank(yiwとかytスペースとか)して
var hogeのしたの行あたりで\cすると
var hoge = document.getElementsById('hoge'); console.log('hoge='); console.log(hoge);
となる。
使う人がイルカは微妙だが、一応メモしておく。
雑談 | |
vimグループって雑談とか書いていいのか。
vimに関することなら大丈夫なのだろうと、勝手に解釈して書くことにする。
htmlでdelタグを使うと取消線とかつけれる。
最近tracとかで取消線がすごい便利というかいいなと、ちょっと感じたわけで。
vimでは取消線とかそういうのってできるんだろうか。
もしできるんだったらTODOリストとか作るときにすげぇ便利そう。
紙にTODOを書いて取消線みたいに線を引いて管理してたから。
はてながTシャツ欲しいとか日記に書かせるので、
どんなデザインかとみていたらいつの間にか購入していた(はてなスターの黒)。
そこで、Tシャツ大好きかつVim大好きな俺が思ったのは、
I♥
Tシャツがあれば買うなぁ(ほかにちょっとアクセントが欲しいけど)と。
2500-3000円なら即、3500円以上なら考えるけど多分買うなw
そういや会社の人が
I♥
の缶バッジもってたな。
すごいうらやましいぜ。
vimグループ初投稿。
SQL書いているときに、普通はSELECT * FROM hoge WHERE id = 1;
みたいな感じでselect, whereなどを大文字で書くけど、
小文字で書いたあとに変換できた方が早いんじゃね?とかちょっと思って、書いてみた。
function Rep(str1, str2) let s:line = substitute(getline("."), a:str1, a:str2, "g") call setline(".", s:line) endfunction function SqlChar2UpperCase() call Rep("select ", "SELECT ") call Rep("update ", "UPDATE ") call Rep("delete ", "DELETE ") call Rep("from " , "FROM ") call Rep("where " , "WHERE ") call Rep("inner " , "INNER ") call Rep("left " , "LEFT ") call Rep("outer " , "OUTER ") call Rep("as " , "AS ") endfunction
map \sql :call SqlChar2UpperCase()<CR>
マップする。以上。
やりたいことが見つかったときに、徐々に書いていこうと思う。
thincainoreabbrev select SELECT
などとしておくと便利かも、などと思った。
PHPなどに埋め込みたいときには邪魔になる可能性もあるけれど、
after/ftplugin/sql.vim などに書いておくのはアリかも。
(私はSQLを書く機会がないのでわかりませんが。)
yaemon保存時に変換するほうが好みかもしれない…
yamazakiccsthincaさん
初めまして。コメントありがとうございます。
select->SELECTはhtml書くときにやだなぁって思って
あとで変換したほうがいいだろうとも思ったんです。
しかし、sql書くときはjavaなのでjava.vimに書いておけばいいですね。
yamazakiccsyaemonさん
初めまして。コメントありがとうございます。
保存時に変換とかできるんですか!
(まぁvimにできないなんて愚問ですが)
たしかに:wとか連発するんでそれで変換されたら便利かもしれないですね。
yaemonあらためて、はじめまして。勝手な感想だけ述べてひと月近く放っておいてごめんなさい。
java から書く sql ならば、filetype を sqlj にするように
:autocmd BufNewFile,BufRead
で仕込んだほうが良さそうですね。( see $VIMRUNTIME/syntax/sqlj.vim )
するとキーワードを自力で並べなくとも、sqljKeyword と sqljOperator に収納されているので、それを取ってきてごにょごにょと…
することが可能ならばきれいに仕上がるなと思うだけで、コーディング実例は思いつかなかったりします。(自嘲)
yamazakiccs>yaemonさん
こちらこそさらに二月放置してごめんなさい。。。
仕事が修羅場ってました(いいわけです。すいません。)
sqlj.vimみてみたんですけど、こんなものがあるなんて知らなかったです。
abbrevで入力変換で大文字にするのはいいんですけど
あんまり好みじゃないんですね、個人的に。(すいません、自分勝手で…
保存時に大文字置換は時間があるときやってみたいです。
今週ちょっとやれればいいな。
辞書からとってくるのとかも含めてやっぱvimscriptをちょっと
勉強してみるベき、俺。
なってないです。:help operator-examplesに書いてあるのは設定例であって、実際にそういう設定をデフォルトで行なってはいません。
コメントありがとうございます。
プラグイン使わせてもらってます!
勘違いしてました、訂正しときます。