มีวิธีรับ Vim เพื่อเปิดในบานหน้าต่างแยกแนวตั้งแทนที่จะเป็นแนวนอนหรือไม่?
มีวิธีรับ Vim เพื่อเปิดในบานหน้าต่างแยกแนวตั้งแทนที่จะเป็นแนวนอนหรือไม่?
คำตอบ:
:vertical
( vert
)ทำงาน:
:vert help
นอกจากนี้คุณยังสามารถควบคุมได้ว่าแยกหน้าต่างด้านซ้าย / ด้านบนหรือด้านขวา / ล่างtopleft
( to
)และbotright
(bo
) ตัวอย่างเช่นหากต้องการเปิดวิธีใช้ในหน้าต่างด้านขวาของการแบ่งแนวตั้ง:
:vert bo help
cnoremap help vert help
. นี้จะสร้างการทำแผนที่โหมดคำสั่งเพื่อที่ว่าเมื่อคุณพิมพ์ในโหมดคำสั่งคุณจะเห็นมันขยายตัวออกไปhelp
vert help
cnoremap help vert help
ทำให้ตัวอักษรแต่ละตัวhelp
ปรากฏขึ้นเองดังนั้นคำhelp
จึงไม่ปรากฏในบรรทัดคำสั่ง มีวิธีใดที่จะแก้ไขได้หรือไม่? อาจจะเป็นอย่างอื่นที่ไม่ใช่cnoremap
?
h
เป็น:vert h
:cabbrev h vert h
แล้วเวลาที่คุณพิมพ์ทุกก็จะขยายตัวออกไป:h
:vert h
เพื่อเป็นทางเลือกสำหรับคำตอบของ Haroogan และ Sean คุณสามารถใช้FileType
เหตุการณ์สำหรับคำสั่งอัตโนมัติเช่นนี้:
autocmd FileType help wincmd L
แม้ว่าสิ่งนี้จะเปลี่ยนตำแหน่งของหน้าต่างวิธีใช้รวมถึงการย้ายหน้าต่างหลังจากวางด้วยตนเองหากไฟล์ที่คุณกำลังดูมีการเปลี่ยนแปลง แต่ฉันเชื่อว่านี่เป็นปัญหาเกี่ยวกับการแก้ปัญหาใด ๆ
:vsplit
) ถึงมีการโหวตเพิ่มขึ้นมากมาย!?
help,*
help
นอกจากนี้ฉันสังเกตเห็นว่าคำสั่งนี้ใช้งานได้เมื่อฉันเพิ่มลงใน_vimrc
และเริ่มอินสแตนซ์ใหม่ของ GVim แต่ไม่ใช่เมื่อฉันเรียกใช้คำสั่งในเซสชัน GVim ปัจจุบัน (ฉันต้อง:set ft=help
ทริกเกอร์ autocmd ด้วยตนเอง)
*
ไม่จำเป็นจริงๆ เท่าที่ฉันเข้าใจสำหรับเซสชันปัจจุบันเทียบกับเซสชันใหม่ในเซสชันใหม่คุณจะต้องจัดหาแหล่งข้อมูลใหม่vimrc
เพื่อให้การเปลี่ยนแปลงมีผลนอกจากนี้หากไฟล์นั้นเปิดอยู่แล้วในบัฟเฟอร์และ:help
จะนำคุณไปยังที่อื่น ส่วนหนึ่งของไฟล์นี้autocmd
จะไม่มีผลใด ๆ
autocmd FileType help wincmd L
autocmd FileType h wincmd L
help
ไฟล์ดังนั้นในการตั้งค่าประเภทhelp
ไฟล์ autocmd นี้จะทำงาน คุณสามารถทดสอบสิ่งนี้ได้โดยทำ:sef help
ในไฟล์ใดก็ได้ในขณะที่มีการแยกในหน้าต่างของคุณดังนั้นจึงไม่จำเป็นต้องใช้ autocmd ที่สองของ @danbruegge
ไม่จำเป็นต้องทำการแมปคำสั่งใด ๆ :Help
หรือแนะนำนามแฝงแปลกเช่น นี่คือวิธีแก้ปัญหา สร้าง~/.vim/after/ftplugin/help.vim
ตำแหน่งที่คุณสามารถแทนที่การตั้งค่า Vim โดยเฉพาะhelp
และเพิ่มบรรทัดต่อไปนี้ที่นั่น:
autocmd BufWinEnter <buffer> wincmd L
ขอเกี่ยวนี้จะช่วยให้แน่ใจว่าhelp
ไฟล์ใด ๆ ที่เปิดในแนวตั้งแยก นอกจากนี้ยังไม่มีผลข้างเคียงที่อธิบายไว้ในคำตอบของฌอน โดยส่วนตัวแล้วนี่เป็นทางออกที่สมบูรณ์แบบสำหรับฉันจนถึงตอนนี้
หวังว่านี่จะช่วยได้ ขอให้โชคดี
คำสั่งนี้ควรทำ:
:vert help
:vsplit
จะแบ่งหน้าต่างปัจจุบันในแนวตั้ง การเปิดนี้ช่วยในบานหน้าต่างแนวตั้งได้อย่างไร
ใส่สิ่งนี้ไว้ใน.vimrc
:
command -nargs=* -complete=help Help vertical belowright help <args>
ตอนนี้คุณสามารถเปิดความช่วยเหลือแนวตั้งด้วย:Help
คำสั่ง (สังเกตว่าอักษรตัวแรกเป็นตัวพิมพ์ใหญ่)
หากต้องการให้ไฟล์ความช่วยเหลือเปิดในแนวตั้งทางด้านขวาเสมอให้ใส่สิ่งนี้ไว้ใน vimrc ของคุณ:
augroup helpfiles
au!
au BufRead,BufEnter */doc/* wincmd L
augroup END
สิ่งนี้จะมีผลข้างเคียงจากการมี "doc" ในเส้นทางที่เปิดในแนวตั้ง แต่นั่นอาจไม่ใช่ปัญหาสำหรับคุณ มันไม่ใช่สำหรับฉัน หากคุณต้องการเปิดในแนวตั้งด้านซ้ายหรืออย่างอื่นสำหรับเรื่องนั้นคุณสามารถเปลี่ยนwincmd L
ได้ คุณสามารถเรียนรู้เพิ่มเติมได้ที่:he wincmd
:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
autocmd FileType help wincmd L
ใช้งานได้เพียงครั้งเดียวสำหรับฉันมันได้ผลดีมาก!
ใส่สิ่งต่อไปนี้ในไฟล์ ~/.vim/ftplugin/help.vim
wincmd L
ง่ายไปกว่านี้ไม่ได้แล้ว :)
นี้ย้ายหน้าต่างช่วยเหลือครั้งเดียว คุณจึงสามารถเคลื่อนย้ายไปมาได้อย่างอิสระหลังจากสร้างหน้าต่างแล้ว
if has('autocmd')
function! ILikeHelpToTheRight()
if !exists('w:help_is_moved') || w:help_is_moved != "right"
wincmd L
let w:help_is_moved = "right"
endif
endfunction
augroup HelpPages
autocmd FileType help nested call ILikeHelpToTheRight()
augroup END
endif
ฟังก์ชันนี้ILikeHelpToTheRight()
จะทำงานเพียงwincmd L
ครั้งเดียวต่อหน้าต่าง (มันคือสิ่งที่w:
คำนำหน้าสำหรับ)
จากนั้นจะเรียกเมื่อใดก็ตามที่มีการเปิดไฟล์ "help" สิ่งนี้ไม่มีผลข้างเคียงของโซลูชันของ EdJoJob
เปิดหน้าต่างวิธีใช้แบบไดนามิกที่ด้านบนหากมีมากกว่าหนึ่งหน้าต่างในแท็บปัจจุบันหรือทางด้านขวาหากมีเพียงหน้าต่างเดียว:
if winnr('$') > 2
wincmd K
else
wincmd L
endif
คุณจะต้องวางสิ่งนี้ไว้ในftplugin/help.vim
หรือใช้กับautocmd
เช่น:
augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END
นี่หมายถึงการเพิ่มในคำตอบของ @ m42 แต่ฉันยังไม่มีตัวแทน 50 คนที่นี่จึงเหมาะสมที่จะเพิ่มในความคิดเห็น
เพิ่มnnoremap <C-H> :vert bo help
เป็น. vimrc
ตอนนี้การกด Ctrl-H ในโหมดปกติจะเข้าสู่โหมดคำสั่งซึ่งขึ้นต้นเพื่อเปิดวิธีใช้ในหน้าต่างแยกแนวตั้งทางด้านขวา รวมช่องว่างต่อท้ายhelp·
<- ท้ายบรรทัดกำหนดค่าเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
การแมปนี้ช่วยให้คุณยังคงใช้:help
\ :h
เพื่อเปิดหน้าต่างที่แบ่งตามแนวนอนหรือวนดูประวัติคำสั่งวิธีใช้ก่อนหน้านี้โดยไม่ต้องแจ้งให้ขยายอัตโนมัติ