ฉันแมปzz
ไป1z=
ซึ่งเป็นที่ดีที่สุดของเวลา แต่ทุกขณะนี้แล้วข้อเสนอแนะครั้งแรกไม่ได้เป็นหนึ่งที่เหมาะสม
ดังนั้นฉันต้องการที่จะทำซ้ำzz
(หรือ.
) ซ้ำเพื่อหลีกเลี่ยงข้อเสนอแนะอื่น ๆ
วินาทีzz
ในคำเดียวกันจากนั้นก็จะได้ผลเหมือนu2z=
กันข้อที่สามzz
ก็ใช้ได้เหมือนu3z=
กัน
ความคิดใด ๆ เกี่ยวกับวิธีการทำเช่นนั้น?
แก้ไข:
จากคำตอบที่ยอดเยี่ยมของ @ nobe4 ฉันสามารถทำสิ่งที่ฉันต้องการได้ แต่ฉันจะทิ้งไว้ที่นี่ซักพักในกรณีที่มีใครมีการปรับปรุงหรือคำแนะนำ:
let s:spell_position = []
let s:spell_count = 0
let s:spell_word = ""
function! LoopSpell()
if s:spell_position != getpos('.') ||
\ (s:spell_count > 0 && s:spell_word !~ expand("<cword>"))
let s:spell_count = 0
let s:spell_position = getpos('.')
endif
if s:spell_count > 0
silent execute "normal! u"
endif
let s:current_word = expand("<cword>")
if len(s:current_word) <= 0
return
endif
let s:spell_suggestions = spellsuggest(expand(s:current_word))
if len(s:spell_suggestions) <= 0
return
endif
if s:spell_count >= len(s:spell_suggestions)
let s:spell_word = s:current_word
let s:spell_count = 0
else
let s:spell_word = s:spell_suggestions[s:spell_count]
let s:spell_count += 1
endif
silent execute "normal! ciw" . s:spell_word
let s:spell_position = getpos('.')
endfunction
nnoremap <c-m> :call LoopSpell()<CR>
(ฉันเปลี่ยนการแม็พเป็น<c-m>
เพราะความคิดเห็นของ @ Vitor นอกจากนี้ยังช่วยให้ฉันกดปุ่มเหล่านั้นค้างไว้และเลื่อนการเรียงลำดับตามข้อเสนอแนะได้อย่างรวดเร็วจริงๆฉันคิดว่ามันเป็น<c-mistake>
)
zz
คำสั่งของฉันแก้ไขสิ่งที่เฉพาะเจาะจงอย่างรวดเร็ว
zz
จัดกึ่งกลางหน้าต่างรอบบรรทัดปัจจุบัน อาจเป็นหนึ่งในทางลัดที่ฉันใช้บ่อยขึ้น นอกจากนี้คุณควรชำระเงินและzb
zt
scrolloff
ค่อนข้างสูง แต่ก็ยังมีประโยชน์ฉันจะพิจารณาการทำแผนที่อื่น ขอบคุณ!
:Correct
คำสั่ง: คุณจะสามารถที่จะนำทางรางคำที่ถูกต้องด้วยn
และN
หน้าต่างแยกที่เปิดกับทุกข้อเสนอแนะการแก้ไขที่คุณก็สามารถนำทางผ่านพวกเขาด้วยj
และk
และ<CR>
จะ ใช้การแก้ไข