12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VimAdvent Calendar 2022

Day 16

Vimで古代ギリシア語【自作プラグインのすすめ】

Last updated at Posted at 2022-12-16

みなさん、Vimは好きですかー??
……そうですか、好きですか。

みなさん、古代ギリシアは好きですかー??
……ほう、ほう、大好きですか。

好きと好きが合わさったら最高に幸せですよね。
という訳でVimプラグインを作りました。その名もソクラテス。1

screenshot.gif

この記事では古代ギリシア語入力用のVimプラグインのお話をします。
これから古代ギリシア語をターミナルからでもすらすら入力したいという人向けの内容になっています。

インストール

お好きなプラグイン・マネージャーで入れてください。

.vimrc
" dein.vim
call dein#add('NI57721/vim-socrates')

" vim-plug
Plug 'NI57721/vim-socrates'

" neobundle
NeoBundle 'NI57721/vim-socrates'

" jetpack
Jetpack 'NI57721/vim-socrates'

使い方

.vimrcに以下の3行の内好きな1行を加えるといい感じに使えるようになります。これはキーマップをトグルするマッピングです。キーマップはsocrates-greedがお勧めです。詳しくは後述

.vimrc
nnoremap <leader>q <Plug>(socrates-greed)
nnoremap <leader>q <Plug>(socrates-latin)
nnoremap <leader>q <Plug>(socrates)

キーマップ

socratesはギリシア語キーボードに対応したキーマップ、socrates-latinはギリシア語のローマ字化に対応したキーマップ、socrates-greedはそれらの良いとこ取りをしたキーマップです。thでθ、psでψなどが入力できるようになります。

socrates-greedのキーマップ

キー ギリシア語 キー ギリシア語 キー ギリシア語
a α m μ t τ
b β n ν y υ
g γ j ξ u υ
d δ x ξ f φ
e ε ks ξ ph φ
z ζ o ο ch χ
h η p π ps ψ
th θ r ρ v ω
i ι rh w ω
k κ s σ
l λ c ς

大文字も似た感じです。ただし大文字の場合はPSPsがともにΨになります。socrates, socrates-latinについてはここでは割愛します。詳しくはGitHubのREADMEをご覧ください。

記号

発音記号などの入力方法は全てのキーマップで共通です。WindowsのIMEではこれらの記号を入力するのに、複雑な配列を覚えたうえでキーを3つも4つも同時に押さなければならなかったりして大変でしたよね。このプラグインではメインのアルファベットの後に記号類を順不同で入力できます。
したがって、a~[_, a~_[, a_[~などは全部と入力されます。

キー タイプ例 意味
[ 有気記号
] 無気記号
` 重アクセント
' 鋭アクセント
~ 曲アクセント
_ ᾳ, ᾼ 下書き/横書きのイオタ
- マクロン
^ ブリーブ
" ϋ トレマ

句読点など

キー タイプ例 意味
? ; 疑問符。セミコロンではない
; · セミコロン
: · コロン(↑と同一)

古いアルファベット

キー タイプ例 意味
F\ Ϝ 大文字のディガンマ
f\ ϝ 小文字のディガンマ
M\ Ϻ 大文字のサン
m\ ϻ 小文字のサン
Q\ Ϙ 大文字のコッパ
q\ ϙ 小文字のコッパ
H\ Ͱ 大文字のヘータ
h\ ͱ 小文字のヘータ
S\ Ͳ 大文字のアルカイック・サンピ
s\ ͳ 小文字のアルカイック・サンピ
Z\ Ϡ サンピ
z\ ϡ 小文字のサンピ
SH\ Ϸ 大文字のショー
Sh\ Ϸ 大文字のショー
sh\ ϸ 小文字のショー
W\ Ͷ 大文字のパンフィリアのディガンマ
w\ ͷ 小文字のパンフィリアのディガンマ
ST\ Ϛ スティグマ
St\ Ϛ スティグマ
st\ ϛ 小文字のスティグマ
j\ ϳ ヨット

区切りのスラッシュ

全てのキーはスラッシュで確定させることができます。socrates-greedではτηと入力しようとしてthと打つとθになってしまいますが、t/hと打つことによりτηと入力することができます。

スマート・モード

デフォルトでsmart modeがオンになっています。これにより、語頭のρは自動で有気記号が付いてになります。また、語末のσは自動でςになります。ラテン文字のつもりでそのまま入力できるので便利です。
例えば、Swkra't/hsと入力すれば、そのままΣωκράτηςとなります。
オフにするには.vimrcに以下を加えてください。

.vimrc
let g:socrates_smart_mode = v:false

また、語頭・語末判定に使う文字を変更することができます。
デフォルトでは,.'";:? ;·<U+00FF>が指定されています。変更するには以下の行を.vimrcに加えてください。

.vimrc
let g:socrates_punctuations = "語頭・語末判定で使う文字"

プラグインの作成について

本プラグインは全てVim scriptで書かれています。2
Vim scriptに関しては既に優れた文章がいくつもあるのでここでは語りませんが3Vim用のGitHub ActionVim scriptのテスト用フレームワークなども充実しており開発体験の良い環境が整っています。
まだプラグインを作ったことがない方も、是非自分の「好き」のために書いてみてはいかがでしょうか。

では、締めにスクリーンショットでタイプしたソクラテスのセリフの翻訳を。

じゃあ、クリトーンよ、それで良いんだ。僕らはそのようにしよう。

  1. スクリーンショットはオクスフォード古典作家叢書中のバーネット校訂版、プラトンの初期対話篇『クリトーン』より。処刑直前のソクラテスによる最期のセリフ。

  2. 大量のキーマップをVim scriptに吐かせるためにスクリプト言語を使用しています。

  3. 例えばVim scriptでプラグインを作ろう 〜 Vimはいいぞ!ゴリラと学ぶVim講座(8)

12
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?