Giter Club home page Giter Club logo

eskk.vim's People

Contributors

aignas avatar asciian avatar hakehash avatar ichizok avatar joker1007 avatar kuuote avatar mattn avatar shougo avatar tani avatar thinca avatar tyru avatar unikuragit avatar unpush avatar x-yuri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eskk.vim's Issues

テーブルを.vimrcなどからいじれるように、テーブルの辞書型を取得できるようにする

現状autoload/eskk/table/rom_to_hira.vimの場合、g:eskk#table#rom_to_hira#definitionにまさにその辞書型が置いてある。
ただautoload変数はファイルが読み込まれないと存在しない。
(変数にアクセスしたら自動的にファイルを読み込んでほしいんだけど...)
なのでそれを取得するための関数をeskk#table#...()あたりに作るといいんじゃないかと思う。

Unixのパイプのようなモード関数呼び出し

eskk#filter_key()からモード(autoload/eskk/mode/*.vim)の関数へ文字を渡して変換させる処理は、Unixのパイプのように処理すると自由度が高まるんじゃないかと予想しています。

配列の変更(文字を対応する文字に変換) | モードによる(ひらがな、漢字)変換

のように。

ユーザへのインターフェースはグローバル変数を用意して

  • 特有のモードの前に実行するモード群
  • 特有のモードの後に実行するモード群
  • モードに依らず現在のモードの前に実行するモード群
    • キーボード配列の変更はこれ
  • モードに依らず現在のモードの後に実行するモード群

なんてのを予想してます。

let g:eskk_pipes_pre = {
    '*': ['dvorak'],
    'hira': ['hira-pre'],
}
let g:eskk_pipes_post = {
    'hira': ['hira-post'],
}

のような構造でもいいかも。

<C-j>でキャンセルできない

▽中にを押すとマッピングの展開がされずにキャンセルできません。

;kyou<C-j>
  ↓
▽きょう<Plug>(eskk:internal:backspace-key)<Plug>(eskk:internal:backspace-key)<Plug>(eskk:internal:backspace-key)<Plug>(eskk:internal:backspace-key)きょう

g:eskk_version == 2036

テーブル周りの刷新

  1. 仮想的なテーブルのサポート
  2. 継承して候補の追加・削除ができるように (それぞれのテーブルは変更不可な仕様)
  3. 現在はキーに対する処理がちらばっているので、全部テーブルにまとめたい
  4. テーブルに対する操作はeskk#table#...()で行う。:EskkMapはそのためのExコマンド

再変換

単語・文節の再変換機能。
文節の場合はmecab-skkservを使うなどする?

漢字変換

SKK辞書による漢字変換。
辞書のエンコーディングも考慮する。

Vim 7.2.347より前のバージョンでエラーが出る

http://lingr.com/room/vim/archives/2010/06/23#message-487577
http://lingr.com/room/vim/archives/2010/06/24#message-488464
http://lingr.com/room/vim/archives/2010/06/24#message-490064

試したいのですが、手元の環境でVim 7.2をコンパイル&ビルドして起動するとなぜかSEGVしてglibcのスタックトレースが出ます><
Vim 7.2もできる限り対応したいので直すつもりではいますが、修正するのは後になるかもしれません。

http://d.hatena.ne.jp/tyru/20100625/eskk_required_version

グローバル変数はautoloadに置く

グローバル変数のデフォルト値とかも管理したいし、
どうせならグローバル変数もautoload時に定義した方が統一感がある。

デフォルト値を管理したい訳は、:EskkCurrentConfigというExコマンドを作りたいからで、
これは何をするものかというと、現在のデフォルト値と違う変数のみ
.vimrcにそのまま貼り付けられる形でバッファに出力するもの。

なぜこれをしたいかというと、skk.vimを使ってて色々設定してる人に
すんなりeskkに移行してほしいため。
デフォルトでskk.vimのグローバル変数を読み、
eskkで実現可能ならeskkの変数もそのように設定させたい。
その場合どの変数がskk.vimのグローバル変数の影響を受けているかが分かりづらいので作りたい。

まぁskk.vimのグローバル変数の影響を受けるならeskkの設定に変えないままでも使える(つもり)だから
無理にeskkのグローバル変数を使うことはないんだけど。

「かん」を打つ際の「かn」で画面がフラッシュしている

Windowsのコマンドプロンプト版で確認しています。
題名の通り、「かん」を打つ際の「かn」まで打つと画面がフラッシュしています。
何かエラーが発生していそうですが、:mesには何も出力されていません。
バグかどうかわかりませんが、変な挙動という事で起票します。

ライセンスの決定

現在helpにはNEW BSD LICENSEと書いてあるが、これは仮なので、後で決定する必要がある。

「んq」が「ンン」になる

テーブルのrom_to_hiraには

Map n ん

がないのに、rom_to_kataには

Map n ン

があるからだと思う。
「kanji」で「かんじ」にならないために一時的に「Map n ん」を消してるので、
対応したら追加する。

マッピング関連

マッピングはテーブル(autoload/eskk/table*)で指定する。
arpeggio.vimなどによるマッピングもサポート。
マッピングはテーブルが切り替わったら以前マッピングしたものを削除して再マッピングする。

今のところテーブルファイル(autoload/eskk/table/*.vim)は「モードによって使われる定義ファイル(データファイル)」という位置づけなのでロジックを組み込むとなると設計を変える必要がある。

eskk.vimによるマッピングが行われる前のマッピングの保存?

現状eskk#enable()が呼ばれると副作用がないようにlmapclear <buffer>してからeskk#map_key()内でlmap <buffer>でマッピングし、
eskk#disable()が呼ばれるとeskk#unmap_key()内でlunmap <buffer>するといった形。

これをeskk#map_key()によるマッピングをする前にマッピングを保存して、復元する、といった風にした方がいい?

eskk#get_stl() が逆の状態の値を返す

eskk が有効のときに空文字列を、無効のときに'[eskk:あ]'等を返すようになることがあります。
発生条件は不明ですが、1度発生すると有効/無効を切り替えても常に逆の状態を返します。

g:eskk_version == 2145

変換候補の選択

現状キーで次の候補に行くのはできても戻る(xキー)のができない。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.