- カーソルのある行の内容を正規表現で切り出してから クリップボードにコピーするための vim プラグインです
- markdown 形式などで作成した箇条書き部分から 必要な部分をコピーする場合に有用です
- vim-plug を使用する場合
Plug 'toshi-ara/copyline.vim'
を追加:PlugInstall
コマンドでインストール
- 文章を markdown 形式で箇条書きして下さい
- markdown 形式でなくても使用可能ですが、 エディタの折り畳み機能を使うことができるため便利です
- 1行だけコピーする場合にはその行にカーソルを置いてから
:call copyline#CopyLineSingle()
を実行して下さい- 箇条書きのための記号や正答を示す記号を除いた部分 がクリップボードにコピーされます
- コマンド実行後は次の行の先頭にカーソルが移動します
- 複数行のコピーを行う場合には
(begin) タグのある行あるいはそれより前の行にカーソルを置いてから
:call copyline#CopyLineMulti()
を実行して下さい- (begin) タグから (end) タグに挟まれた領域で 箇条書きのための記号や正答を示す記号を除いた部分 が連続的にクリップボードにコピーされます
- コマンド実行後は (end) タグの次の行の先頭にカーソルが移動します
- (begin) タグあるいは (end) タグが存在していない場合には コピーされません
- 任意のキーボード・ショートカットを割り当てると便利です
- (例)Ctrl-} および Ctrl-] に設定する場合:
nnoremap <silent> <C-}> :call copyline#CopyLineSingle()<enter>
nnoremap <silent> <C-]> :call copyline#CopyLineMulti()<enter>
以下の例で、
カーソルを (begin) タグ以前の行に設定してから
:call copyline#CopyLine()
を実行すると、
問題文
、選択肢1
、選択肢2
がクリップボードにコピーされます。
+
, -
, *
を使用できます。
(begin)
+ 問題文
+ 選択肢1 ##
+ 選択肢2
+ 選択肢3(後ろの半角スペースは削除されます)
(end)
(begin)
- 問題文
- 選択肢1 ##
- 選択肢2
(end)
(begin)
* 問題文
* 選択肢1 ##
* 選択肢2
(end)
英数字にピリオド、片括弧、両括弧(半角文字)を追加しても動作します。
(begin)
1. 問題文
a. 選択肢1 ##
b. 選択肢2
(end)
(begin)
1) 問題文
a) 選択肢1 ##
b) 選択肢2
(end)
(begin)
(1) 問題文
(a) 選択肢1 ##
(b) 選択肢2
(end)
問題を作成するときに正答や誤答を追加したい場合があります。
この場合には、コピーしたい文字列(選択肢など)の後に
半角スペースあるいはタブを挟んで
##
(#
を1個以上連続させたもの)や
○
、×
を記載することができます。
この部分はクリップボードにコピーされません。
- これらの文字の後ろには何も書かないで下さい
○
および×
は機種依存文字を使う場合があるため非推奨です
(begin)
- 問題文
- 選択肢1 ##
- 選択肢2 ○
- 選択肢3 ×
(end)
(begin)
# 問題文(この行は無視される)
+ 問題文
+ 選択肢1
+ 選択肢2
+ 選択肢3
# 解説(この行は無視される)
+ 解説1
+ 解説2
+ 解説3
(end)
FIFO
(First In, First Out) とは「先入れ先出し」のことです。
Cliborというクリップボードの機能を拡張する
フリーソフトウェアを使用すると
FIFO
を行うことができます(Cliborの設定で FIFO
を選択します)。
この機能を使用することで、
先にまとめてコピーしておいてから順番に貼り付けることができます。
この Clibor と今回の拡張機能を併用することで、 markdown 形式の箇条書き部分から必要な内容をまとめてコピーした後に web の入力項目などに順番に貼り付けることが容易にできます。
- 同じ文字列が続いた場合には2回目以降はコピーされません
- 選択肢1と選択肢2の内容が同じ、など
- これは Clibor の設定で回避できます
- startタグをbeginタグに変更
- 1行だけ処理する関数を復帰させた
- それに伴い関数名を変更した
- copyline#CopyLineSingle
- copyline#CopyLineMulti
- コードのリファクタリングを行った
#
で始まるヘッダー行を無視するように変更した
begin/endタグを使用することで連続的にクリップボードに コピーすることを可能にした(cliborの併用が必要)
最初のリリース