物置き

「やまぶきR」を使った親指シフト入力でFirefoxで親指シフト入力ができない

いつのバージョンからか忘れたけど、Firefox親指シフト入力できなくなった。
他のアプリ上では問題なく親指シフト入力できるが、Firefoxだけはローマ字入力になってしまう。

やまぶきのバージョンは やまぶきR ver1.11.1。

試してみたところ、以下の方法で解決できたのでメモ。

about:config

intl.tsf.enableの値をfalseに変更

Firefoxを再起動する

vim-operator-ankicloze 0.0.1

Ankiという暗記のためのアプリがあります。

問題の出題間隔を変えて出題することにより効率よく物事を覚えられるというやつで
自作の単語帳や穴埋め問題を作ることができます。

穴埋め問題を定義するときには以下のような書き方で穴埋め部分を指定します。

任意の平文から暗号文を取得できる状況において、
平文と暗号文を大量に生成した上で、それをもとに暗号鍵を推測する攻撃手法を何というか?
↓
{{c1::選択平文攻撃}}

上記の場合、「{{c1::選択平文攻撃}}」の部分が穴埋め部分となります。

Vimを使って穴埋め問題を作成する際に
{{c1::〜}}という部分を毎回手作業で書くのは面倒です。
この作業をある程度省力化するために
「{{cN::〜}}」という記述を手軽に作成するためのoperator用のプラグインを作成しました。

以下にファイルをおいていますので、
同じようなことをされている方がもしいらっしゃるようでしたらご利用いただければと思います。

https://github.com/ampmmn/vim-operator-ankicloze

(要 operator-user)

使い方

1. 上記からファイル一式をダウンロードする。
2. 他のプラグインと同様の方法によりインストールする
3. .vimrcあたりに、キーマッピングを登録する(下記参照)

map ,1 <Plug>(operator-ankicloze1)

上記の例だと、「,1」キーに対して、 {{c1::〜}} という書き込みを行うためのoperatorを割り当てます。

operator-ankicloze1から、operator-ankicloze5まで定義しています。
それぞれ、c1〜c5に対応しています。

オペレータ名 機能
(operator-ankicloze1 テキストオブジェクトで指定した範囲のテキストを {{c1::〜}} という形式で囲む
(operator-ankicloze2 テキストオブジェクトで指定した範囲のテキストを {{c2::〜}} という形式で囲む
(operator-ankicloze3 テキストオブジェクトで指定した範囲のテキストを {{c3::〜}} という形式で囲む
(operator-ankicloze4 テキストオブジェクトで指定した範囲のテキストを {{c4::〜}} という形式で囲む
(operator-ankicloze5 テキストオブジェクトで指定した範囲のテキストを {{c5::〜}} という形式で囲む

実行時のイメージ

文字単位での選択




行単位での選択




ブロック単位での選択



RedmineのWikiを編集するVimプラグインを作成

久々の更新。
題名の通り、RedmineWikiVim上で編集するためのプラグインを作ってみました。
同様の機能のものはすでにあるとは思うけど、自分が作ったのはPukiVimのような使用感のもの。

GitHubに置いてますのでご利用ください。
https://github.com/ampmmn/vim-redmine-wiki

使い方

インストールすると、RedmineWikiBookmarkというコマンドが使えるようになります。
このコマンドを実行すると、ブックマークページが表示されます。
このブックマークページに編集したいWikiページのあるRedmineプロジェクトへのURLを記述します。

↓ こんな感じ

このブックマークページを編集して、よくアクセスするRedmineWikiページへのURLを記載し、保存してください。


URLの上にカーソルをおき、Enterキーを押すと、Wikiページのソースをバッファ上に表示します。
バッファを編集し保存すると、変更がWiki側に反映されます。

Wikiページへのリンクを上でEnterキーを押すと、リンク先ページを表示・編集することができます。

・・・という感じのPukiVimのRedmineWiki版です。

できること

  • Wikiページの閲覧・編集
  • ページ作成
  • ページ削除
  • ページ一覧表示

必要なもの

上記のほかに、openbrowser.vimが入っていれば、
現在表示しているWikiページをブラウザで開くことができます。

(上の[OpenBrowser]上でEnterキーを押すか、gxキーを押す。

あと、vim-syntax-redminewikiを入れとくと、
Wikiページに対してシンタックスハイライトが行われます。
Textile記法です。Markdown記法は知りません。

その他メモ

  • 初回アクセス時にAPIキーをプロンプトで入力しますが、ここで入力キーは「.vim/redminewiki/apikeys.json」に保存します。
    • g:redminewiki_datadir変数で設定保存先ディレクトリを変更できます
  • Windowsでしか動作確認してません

既知の問題

  • Redmineプロジェクト側のWikiページがまったく存在しない場合にエラーがでます。(修正)
  • このプラグインで新規作成したページは、すべてルートページとなります。
    • (2015/6/14時点では、REST API経由で作成するページの親ページを指定することができないため)

pathogen.vim入れた

最近よくpathogen.vimというプラグインの記事を見かけ、
便利そうだと思ったので試しに自分も入れてみたら、ちょっとつまづいたところがあったので以下にメモ。


はじめに入れたのは、www.vim.orgから落としてきた バージョン1.2
このpathogen.vimWindows環境(かつ&shellslashが0の状態)で使うと、
bundleディレクトリの下に置くプラグイン直下のafterディレクトリが&runtimepathに追加されない。
そのせいで、bundleディレクトリ下に移動したsnipMateが動かなかったりした。
ちなみに、snipMateは www.vim.orgから落としてきたバージョン0.83


で、調べると、githubに置いてあるものはもっと新しいとのことで、
こちらを試したところ、afterディレクトリも &runtimepath に追加されるようになった。


が、それでもsnipMateが動かなかった。

自分の環境では以下の構成でスニペットファイルを置こうとしていたのだけど・・

vimfiles/
	snippets/                      <- もともと置いてたところは残しつつ・・
	bundle/
		snipMate/
			snippets/      <- 新しく追加したところにも置く


このように、複数のsnippetsディレクトリを置くと、自分の環境ではスニペットを展開する機能が動作しなくなる。

もしかしたら、こちらもgithub上の新しいものを使えば
解決するんじゃないかと思って試してみたのだけど、変わらなかった。

どうも、スニペットファイルを探す処理の中で、
globpath()に渡す文字列でディレクトリ名の末尾に'\'をつけて渡しているので、
複数のディレクトリが入ると、全く検索されなくなってしまうみたい。
Windowsでの問題なので、他の環境ではそうならないはず。


bundle/snipMate/snippetsには標準添付のスニペットファイル、
vimfiles/snippetsには自前のスニペットファイルを置くという意図だったのだけど、
現状これでは駄目ということで、ディレクトリ名末尾の'\'をつけないように修正することに。
なんか副作用あるかもしれないけど、一見動作しているようだからまあよしとした。

チケット表示画面で/キーを押すと前後のチケットを表示できる

VimperatorではキーでURLの末尾の数字を+1、キーで-1してURLを移動することができる。
なので、Redmineのチケット表示画面で,キーを押すと、今見ているチケットの前後のチケットにお手軽に移動することができる。
次に参照したいチケットが、今見てるチケット(番号)の近辺にあることが分かっている状況で使えるかもしれない。


もっとも、URLの番号だけで移動するので、
移動してみたら違うプロジェクトのチケットだったということもあるわけですが...


個人的に,は押しづらいので、<,>キーにマップしたら、ちょっと使いやすくなった。

noremap < <C-x>
noremap > <C-a>

あふにTortoiseGitの各コマンドへのショートカットキーを設定する

以前から使おうと思いつつも面倒くさがって使わなかったGitを最近やっと使い始めた。
普段の作業環境はWindowsなので、TortoiseGitもあわせて入れた。


いままではSubversionを主にTortoiseSVN上から使っていて、
あふ上でTortoiseSVN用のショートカットキーを設定することで、
あふ上からはコンテキストメニューを表示することなく使っていたのだけど、
TortoiseGitでも同様の使い方をできるようにしたいと思ったので設定した。

あふ側の設定

あふの設定画面の「キー定義」を以下のように設定

割り当て やること コマンド
Ctrl-F9 更新(git pull) $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:pull /path:"$MF"
Ctrl-F10 コミット $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:commit /path:"$MF"
Ctrl-F11 元に戻す(git checkout -fに相当?) $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:revert /path:"$MF"
Ctrl-F12 ログの表示 "C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:log /path:"$P\$F"
Shift-F9 追加 $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:add /path:"$MF"
Shift-F10 削除 $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:remove /path:"$MF"
Shift-F11 リネーム "C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:rename /path:"$P\$F"
Shift-F12 差分 $J*$QN"C:\Program Files\TortoiseGit\bin\TortoiseProc.exe" /command:diff /path:"$MF"

これで、あふ上からファンクションキーで各コマンドを実行できるが、
ファンクションキーはとても押しづらいので、窓使いの憂鬱でより押しやすいショートカットキーを設定

窓使いの憂鬱側の設定

# あふのTortoiseSVNショートカットに関する設定
keymap2 Afx-TortoiseSVN-Prefix
 key U = C-F1
 key C = C-F2
 key R = C-F3
 key L = C-F4
 key A = C-F5
 key D = C-F6
 key N = C-F7
 key M = C-F8

# あふのTortoise(SVN|Git)ショートカットに関する設定
keymap2 Afx-Tortoise-Prefix
 # TortoiseSVN用のプレフィックスキー
 key S = &Prefix(Afx-TortoiseSVN-Prefix)
 # TortoiseGit用のキー設定
 key U = C-F9    # 更新(git pull)
 key C = C-F10   # コミット
 key R = C-F11   # 元に戻す
 key L = C-F12   # ログ
 key A = S-F9    # 追加
 key D = S-F10   # 削除
 key N = S-F11   # リネーム
 key M = S-F12   # 差分
 key Comma = &Default

### あふ
window AfxFileBox /AFX.EXE:TAfxForm:TPanel:TFileBox/ : Global
 key Comma = &Prefix(Afx-Tortoise-Prefix)

「,」 + <何か> の2ストロークで(ログ表示|コミット|更新(Pull)|差分表示|元に戻す|追加|削除|リネーム)を実行できる。
その他のコマンドはコンテキストメニュー or コマンドラインから。


個人ではGitに移行しはじめているのだけど、
他の人の作業に関わる時には今まで通りSubversionも使える必要があるので、
いままで使ってきたTortoiseSVNへのショートカットキーは
「,」+ S + <何か> の3ストロークで入力できるようにしておいている。
(git svnコマンドを使ってみたけど、日本語ファイル名周りでエラーが起こったので、現時点では完全に移行することができていない)


しばらくこれで使ってみよう

smartfm_frontend.vim 0.0.4

  • 未学習単語数だけでなく、リスト全体の単語数とマスターした単語数を表示するようにした
  • リスト内単語一覧を表示する機能を追加

リスト内単語一覧の表示

[Items]という箇所でEnterキーを押すと、



こんな感じで、リストの単語一覧を別バッファに表示します。



使い途としては、CSVファイルからのインポートに対応した単語学習アプリ(i暗記とか、P-Study Systemとか)に
インポートして、それらのアプリを補助的に使うことで、定着しにくい単語を覚えることができるかもしれません。


smartfm_frontend 0.0.4