application/migrations
からすべての移行ファイルを読み込んで、適切なリビジョン を選択するのに役立つスニペットを作成しようとしています。ファイル番号から番号を抽出する、UltisnipsのPython補間スニペット
私は自分自身を行うために管理することは、私は タイピング思いながら、私のファイル名がフィルタリングされている、とだけ1つの試合は(常にファイル名の最初の14の文字です)カーソル 位置にそのリビジョン番号を挿入去ったときということです。
問題は、私が選択するようにTABを打ったとき、私もこの remo20160812110447
のようなものを意味し、そのリビジョン番号を検索するために、私は がこれまでに入力したものと残されていますということです。
質問は、この場合はどうすれば取り除くのですか?remo
!?
注:例では、ハードコードされた値を使用しています。テストを容易にするため、後で を# lst = os.listdir('application/migrations')
行に置き換えています。
も追加のボーナス効果は、選択しながら 人間が読み取り可能な日付形式としてそれら20160710171947
値を提示することが、TABを打った後、それらの 元のソースバージョンを挿入します。
global !p
import datetime
def complete(t, opts):
if t:
opts = [ m for m in opts if t in m ]
if len(opts) == 1:
return opts[0][:14]
return "(" + '|'.join(opts) + ')'
endglobal
snippet cimigration "Inserts desired migration number, obtained via filenames"
$1`!p import os
# lst = os.listdir('application/migrations')
lst = [
'20160710171947_create.php',
'20160810112347_delete.php',
'20160812110447_remove.php'
]
snip.rv = complete(t[1], lst)`
endsnippet
私はこの質問は投票ダウン人は 'X'理由を、知っているよりも幸せになります。問題はPython自体ではなく、簡単に解決できるので、この場合のプラグインの動作です。 – branquito
私はdownvoterではありませんが、私は2つのことを主張したいと思います。あなたは 'flag'ボタンを押して司会者に[vi.SE](http://vi.stackexchange。 com /)、より多くの人々がそこで助けることができるかもしれません。また、私はultisnipsを使用したことはありませんが、私はこれが純粋なvimscriptで書くのは難しくないと主張したいと思います。リストを取得するには 'split(globpath( 'application/migrations'、 '* .php'))'を使い、 ''を押すと 'viwc'を使うことができます。 –
grochmal
ポイントはタイピング中の結果をフィルタリングしているので、検索結果が絞り込まれ、ファイルの単純なリストは取得されません – branquito