を重複を削除これは私のリストです:は(vimの中で)リストから
['02', '03', '03', '16', '17', '17', '28', '29', '29']
私はこのリストから重複を削除する方法を知っていただきたいと思います。
私は項目がリストに既にある場合 をチェックするために、リストに項目を追加するとき、それはまた、可能でしょう(重複を避けるために?)
を重複を削除これは私のリストです:は(vimの中で)リストから
['02', '03', '03', '16', '17', '17', '28', '29', '29']
私はこのリストから重複を削除する方法を知っていただきたいと思います。
私は項目がリストに既にある場合 をチェックするために、リストに項目を追加するとき、それはまた、可能でしょう(重複を避けるために?)
let list=['02', '03', '03', '16', '17', '17', '28', '29', '29']
let unduplist=filter(copy(list), 'index(list, v:val, v:key+1)==-1')
を試してみてください。 2番目の質問については、:h index()
を参照してください。ところで
、
の順番を気にしないあなたはおそらく代わりに辞書を使用する必要があります。重複の検索文字列の数が多いために高速です(そして実際には必要ありません)。
ありがとうございます。 :) – Reman
このEX-モード(すなわち:
後に入力します)正規表現置換が(彼らは連続して提供される)重複を排除します:
s/\('[0-9]\+'\),\s\+\1/\1/g
vimとそのすべての微妙さが大好き – ojblass
ます。また、辞書のキーにリストを変換することができます:
let list=['02', '03', '03', '16', '17', '17', '28', '29', '29']
let dict = {}
for l in list
let dict[l] = ''
endfor
let uniqueList = keys(dict)
これはソート済みリストとソート済みリストの両方で機能します。
質問が不明です。あなたはVIMの重複する行を削除することを意味しますか? – Rahul
申し訳ありませんが、vimscriptの配列からはありません – Reman