Google ChromeをAppleScriptで操作する - DiaryException
こちらを拝見し
nnoremap u2 <ESC>:<C-u>read !osascript -e 'tell application "Google Chrome" to get copy selection of active tab of window 1' ; pbpaste
を .vimrc に記入したところ、とっても便利になりました。(MacOS X の /usr/bin/vim ver 7.2.108)
# Chrome で閲覧している Webpage 中の文字列を選択し、vim 側で <ESC> u2 すると選択した文字列がコピペされる。
ところが Application MacVim version 7.3 (code.google.com/p/macvim/) で試したみたら文字化けされてペーストされてしまった。
$ man pbpaste
をみてもわからないので...
nnoremap u2 <ESC>:<C-u>read !osascript -e ' tell application "Google Chrome" to (get copy selection of active tab of window 1)' -e 'the clipboard'
/usr/bin/pbpaste の代わりに StandardEdition の the clipboard を使ってみたら文字化けがなおった。
/usr/bin/vim からもOK。と思ったのもつかのま、今度は改行がおかしくなった。改行が<0d><0d>になっている様子。
# 翌日。
どうにもお手上げなので、元の(pbpaste使用) nnoremap に戻して再度 MacVim から試すと、なんと!文字化けしないし改行もおかしくない。なんの問題もない。
この間、スリープはしたけどログアウトはしていない。
~/.MacOSX/environment.plist , ~/.inputrc は配置していない。.bashrc , .gvimrc は変更していないし .vimrc は件の nnoremap 行以外の行を触っていない。一体なんだったんだろう...。
# さらに後日。
MacVim 付属の mvim 使ってファイルを開いたり、Dock にある MacVim アイコンをクリックし ⌘+O でファイルを開いたり...両方使ってたかも?と気づいてハッとした。
Dock にある MacVim アイコンをクリックし MacVim 起動。 Chrome で文字列を選択しu2 すると、文字化けがみごと再現した。
ターミナルから mvim または /usr/bin/vim 使った場合。 No problem .
一般ユーザーも7月には自分のマシンにインストールできるようになる。価格は$29で、Mac App Storeからのみ購入できる。
Ferericchiはフルスクリーン・アプリ、マルチタッチ、Airdropなどの機能を紹介した。
引用元: Mac OS X Lionの新機能トップ10
http://jp.techcrunch.com/archives/20110606top-10-new-mac-ox-lion-desktop-features/
つまり、件のワンライナーは、ターミナルから mvim を通して MacVim を起動した場合と、/usr/bin/vim で使う場合においては全く問題なし。
ドックにおいたMacVimアイコンをクリックし起動した場合は問題あり、のようだ。
# ちなみに:set fileencoding? を実行すると「いずれの場合」も
# =>
# fileencoding=utf-8
# になっている。
また、ターミナルから
% open -a MacVim testest.txt
した場合も問題なかった。
# さらにさらに後日。
% cat testing.rb
#!/usr/bin/ruby
path = ARGV[0]
exit unless File.exist?(path)
system("/usr/bin/osascript -e 'Tell application \"MacVim\" to open (POSIX file \"#{path}\") as string' -e 'return'")
% ruby testing.rb 001.txt
によって開いたファイルで u2 してみると...問題なかった。
感想。
# Dock から MacVim 起動してはいけないのだろうか?
0 件のコメント:
コメントを投稿