Item - データベース: vimp copy - wedata
文字通り。
これ作ったからwedata SITEINFO からコマンドひっぱってこれるよーっていうcopy.jsの改良は他のエロい御人たちにまかせる。
とりあえず自分がvimperatorrc.js に書いておいているモノはItem作成しておいた。
wedataでの説明についてが言葉足らずなので、あとでもうちょっとマシな文面にしたい。「こう書けば良いんでないの」という方アドバイスplz.
ところで firefox からfotolifeに画像アップロードしようとするとフリーズするんだけどこれ僕だけ? ivmperatorグループ作ったときからそうなんだけど。
他の人がそうでないんだったら自分のvimpか拡張の何かが悪さしてるんだろうなぁ…
始めてのプラグインへのコミット。
Changeset 27879 – CodeRepos::Share – Trac
コミットした直後にスペルミスみつけてすぐ直した。
liberator.echo("[Twitter] Your post " + '"' + stat + '" (' + stat.length + " characters) was sent. " );
"Changeset 27880 – CodeRepos::Share – Trac"
発言した後に
[twitter]Your tweet "発言内容" (発言の文字数) was sent
ってechoする。
キャプチャ
文字数が多い時
文字数が少ない時
文字数が246越えたらpostしないでerrorMsg出すようにもしようかと思ったけど実際は尻切れでも投稿自体はできるんだからそのままにした。
echoの文頭に"Your tweet ..." をつけるのってあんまり意味がないかなーと思ったけどまぁいいか。
xhr.send("status=" + encodeURIComponent(stat) + "&source=Vimperator");
Changeset 27880 – CodeRepos::Share – Trac
自分がプラグイン作成者じゃないので勝手にTwitterに送ってよいか悩んだのでそのままにした。id:Trapezoid さんに確認しようかと思ったけど深夜だったので自重した。
まぁとりあえずこのままtwitter側に認められたらtwitterの発言元に from:web じゃなくって from:Vimperator になる。
nokturnalmortum2009/01/05 14:37WinXP Fx3.0.5 ではアップロードでフリーズすることはありませんでした。
Trapezoid2009/01/06 23:36僕が英語かなり苦手なので、送ってもらえると助かるかもしれません。
あくまでも個人的な意見ですよ。
しかしこのエントリタイトル自治厨くせぇな。
よく考えたら本当はFirefoxを使う時点で下二つは持ってなきゃいけないと思うし、それも持たずに拡張ガンガンいれたりgreasemonkey入れまくって「グリモン便利〜」とか言ってたら…。
それは無邪気だけど暴れはじめたら一番タチが悪い輩だろうと思う。
セキュリティリスクを受けいれて、且つ問題が起きても基本的に自分で解決しようとする人だったら無知のままvimp入れちゃっても大丈夫だと思う。
ちなみに自分は転んだら泣きつきっぱなしのような気がしています。反省
vimperatorへの導入記事は山ほどあるし、元々vim使いでもないわjsプログラマでもないので自分が「みなさんのために!」系の日記を書くのはアレ*1で抵抗があったけど、「知人が始めて「オイ!ぜっんぜんわかんねぇ」って言われた時にとりあえずどうやったら自分で使いこなせるようになるまで軌道にのせるか」っていう思考実験として。
自分が導入したのは実質0.6あたりからか。もっと前からインスコしては「やっぱりムリかなー」って外したりを繰り返してはそろそろ一年が立つ。きっかけは id:retlet が使ってるのを見てからだった。
たしかにunixの各shell,vi/vimに慣れた人だったら不可視ファイルでもぜんぜん「見」えるんだけど、その時点で諦めてしまう人が多いし、じゃぁ「dotfileでたじろぐ」→「vimpはじめる資格なし」ってわけでもないだろうと思う。
自分の場合、デスクトップにあるキャッシュの不可視ファイルが異様にHDの容量使ってたのを調べるためにOnyX入れてたから不可視ファイルをFinderで弄ることができたからvimpもvimやemacsを導入できた、って経緯がある。
むしろvimpを契機にUnixシェルだったりvim/emacsの世界に入っていけるのだってアリなんじゃないか、なんて考えてる。シェル操作覚えるとGUIの操作より速く作業できたりするしね。
.vimperatorrc、vimprcって略したいよね。
:mkvimperatorrc で生成すると_vimperatorじゃなくて.vimpeartorが作られる。
ここで
のどっちかをすれば良い。
とりあえずRCファイルを_vimperatorrcにしておけば任意のエディタからGUIナビゲーションで開いて編集できる。たぶんここが大きいと思う。自分はOnyXで表示させておいてvim覚える以前はCotEditorで.vimperatorrc編集していた。当時これ知ってたらと思う。
ランタイムディレクトリ - vimperatorグループの通りなんだけど、:mkvimperatorrc だとフォルダも不可視(.vimperator)になる。なのでこれも設定する。
terminalで
mv .vimperator/ vimperator/
_vimperatorrcに。.vimperatorフォルダが無ければ別にいい
set rumtimepath=$HOME/vimperator " $HOME: ~/vimperator
pluginもsvn co とか git clone とかで持ってくるのが早いんだけど、僕も最初の頃はいちいちcodereposからoriginal formatダウンロードしてたわ。なのでFinderから整理できた方がいいよね。
やりかたは二つ
ちなみに自分はdotfileがHOMEにたくさんできて煩わしくなってきたのでvimとvimpは_ではじまるように設定してます。finderだと一番上にソートされるし。
*1:なんか中途半端に知るとつい作ってしまう○○講座のよう
できてから一週間過ぎました。
ちょっとだけグループトップのCSSを弄ってvimpデフォルトの配色に似せました。
サイドバーの上下にvimperator.orgとmozila.jpのfirefoxバナーを。
あとこのグループのfaviconをvimperator.orgのfaviconにした。
一週間で参加者31人でこのグループの各々の日記のブクマ数やアクセス数を見てもvimpがネットジャンキーに注目されてる度合いがわかりますね。
そろそろ自分の.vimperatorrc .vimperator.js を公開しようかな。
普通に色々人のを見てコピペしてちょこっとだけ自分の好きに変えてる程度だから参考にならんと思うけど。
runtime/.vimperator.js にjs関係はみんな書いておいてる。.vimperatorrc に書くともう量が多いし
// .vimperator/.vimperator.js // copy.js liberator.globalVariables.copy_templates = [ { label: 'titleAndURL', value: '"%TITLE%" %URL%' }, { label: 'titleAndTinyURL', value: '"%TITLE%" %tinyURL%', custom: function(){return '"' + buffer.title + '" ' + util.httpGet('http://tinyurl.com/api-create.php?url=' + encodeURIComponent(buffer.URL)).responseText;} }, { label: 'title', value: '%TITLE%' }, { label: 'hatena', value: '[%URL%:title=%TITLE%]' }, { label: 'hatenacite', value: '>%URL%:title=%TITLE%>n%SEL%n<<' }, { label: 'markdown', value: '[%SEL%](%URL% "%TITLE%")' }, { label: 'htmlblockquote', value: '<blockquote cite="%URL%" title="%TITLE%">%HTMLSEL%</blockquote>' }, { label: 'ASIN', value: 'copy ASIN code from Amazon', custom: function(){return content.document.getElementById('ASIN').value;} }, { label: 'tinyURL', value: 'Get Tiny URL', custom: function(){return util.httpGet('http://tinyurl.com/api-create.php?url=' + encodeURIComponent(buffer.URL)).responseText; }} ];
またカラースキームネタ。
たとえば任意のカラースキーム使ってると「元にもどしたい」とか、見た目の問題でカラースキームが起こしてるんじゃにのこれって時があって、そういう時に.vimperatorrc開いて:colorscheme の箇所をコメントアウトして再起動とか明らかにめんどい。
あるいは自前でカラースキーム作るのに:hi と打って確認するのがめんどい。
じゃぁ作ってしまえという事で default.vimp を作りました。
/lang/javascript/vimperator-plugins/trunk/colors/default.vimp – CodeRepos::Share – Trac
使い方は普通のカラースキームと同様、 rumtime/colors/ にdefault.vimp を置いて
:colo[rscheme] default
あと.vimperatorrc に
" colo default colo "*/ 自分が設定している colorscheme /*"
と書いておいて デバッグとして記述しておくのも良いかもしれません。
むしろ自分がやりたかったのは「コピーしてリネームして新しくcolorscheme作るのが楽になる → 元々設定項目がリストになってて、値変えて作れる土台があれば良い」だったので、そっちの目的の方がメインです。
highlight の定義は ver2.0alpha1(nightly_2008-12-16) のものを準拠しています。
vimpの本体の仕様かわっちゃったら、まぁ調整すれば、ということで
→mkcolor.js: highlight 書き出しプラグイン。 - anekosの日記 - vimperatorグループ
もうこれで default.vimp は自作colorscheme用のテンプレってことでいいな
(追記)そのうち codereposにあげますが、やりかたがまだわからないので各自でコピペして sweets.vimp としてruntime/colors/ に保存してください。
(追記2)codereposに上げました。色指定が足りないなーって思ったらガンガンコミットしちゃってね
Hintモードのハイライトの文字が時々小さくてモニタに顔を近付けたり、コマンドラインとか諸々のフォントサイズが小さい上にBoldかかってたりとかがあったのでhiを弄りはじめたらこれはすごい時間泥棒だった。 Motsu_Tabetai 並み。
前の日記でも触れたんだけど、この頃のMacOSでのvimp2.0preのタブの表示が良くなくて、とくに前回の日記の状態だと「未読のタブ(バックグラウンドで開いただけのタブ)」「今見ているタブ」が差別化されてなくって、「今どこらへんのを読んでるんだっけ」ってなってた。なのでタブバーまわりを弄るcssについてちょっとだけ調べていた。
id:teramakoさんのevenig.vimpを見ながら色つけしてた。
Hint
" ==Vimperator_Color_Scheme==
" name: Sweets
" ==Sweets_Color_Scheme==
hi Hint font-family: monospace; font-size: 15px; font-weight: normal; color: lightyellow; background-color: black; border-color: ButtonShadow; border-width: 0px; border-style: solid; padding: 0px 5px 0px 5px;
hi HintElem background-color: pink; color: black;
hi HintActive background-color: hotpink; color: white;
hi StatusLine color: DeepPink; background: #000; font-weight:normal;font-size:10pt;
hi Normal color: LightYellow; background: #333; font-size: 10pt;
hi InfoMsg color: LightYellow; background: #333; font-size: 10pt;
hi ModeMsg color: LightYellow; background: #333; font-size: 10pt;
hi MoreMsg color: LimeGreen; background: #333;
hi LineNr color: DeepPink; background: #333; font-size: 10pt;
hi Question color: Yellow; background: #333; font-size: 10pt;
hi WarningMsg color: DeepPink; background: #333; font-size: 10pt;
hi NonText background: #333;
hi Null color: CornflowerBlue;
hi Tag color: CornflowerBlue;
hi CompTitle color: magenta; background:#222; font-weight: bold;
hi CompItem[selected] color: DeepPink; background: Black;
hi CompDesc color: Pink;
hi GradientRight background-color: Black;
hi Title color: white;
hi Indicator color: DodgerBlue;
hi String color: Orchid;
hi Number color: Orchid;
hi Object color: Khaki;
hi Function color: SkyBlue;
hi URL color: LightGreen;
hi TabNumber color: white; font-weight: bold; font-size:10pt;
style -name tab chrome://* <<EOM
#content { background-color: #ddd;} /* tabbar */
.tabs-alltabs-button { padding: 0 !important; }
.tabs-container { height: 20px; border-bottom: 2px solid #000; }
.tabs-container > stack { display:none; } /* remove tab selection menu */
.tabbrowser-tab {
-moz-apperance: none !important;
margin: 0 !important;
padding: 0 !important;
-moz-border-radius-topleft: 0 !important;
-moz-border-radius-topright: 0 !important;
-moz-border-radius-bottomright: 0 !important;
-moz-border-radius-bottomleft: 0 !important;
border: 2 !important;
background-image:none !important;
background-color: #ff69b4 !important;
}
.tabbrowser-tab[selected=false] { background: #999 !important; }
.tabbrowser-tab[selected=true] > .tab-text { color: #ddd !important; }
EOM
style -name statusbar chrome://* <<EOM
#status-bar statusbarpanel { padding: 0 1px !important; }
statusbarpanel > * { margin: 0 !important; padding: 0 !important; }
EOM