แม้จะมีความจริงที่ว่าคำถามที่ค่อนข้างเก่าและทำเครื่องหมายเป็นคำตอบที่ฉันต้องการที่จะขยายคำตอบโดยบอกว่าคุณสามารถใช้คำสั่งโหมดปกติซึ่งมีให้โดยสเวน Marnachด้วยnnoremapเช่นดังนั้น:
:nnoremap <C-Up> <Up>ddp<Up>
:nnoremap <C-Down> ddp
ซึ่งจะช่วยให้คุณสามารถย้ายบรรทัดด้วยCtrl+ UpและCtrl+ Downภายในไฟล์ของคุณ อย่างไรก็ตามสิ่งนี้จะเขียนทับ@"register ซึ่งเก็บสตริง / word / letter / etc ที่คัดลอกล่าสุดของคุณ ดังนั้นโดยการเพิ่ม "(reg) ก่อนddและpคำสั่งเราสามารถแก้ไขสิ่งนี้ได้:
:nnoremap <C-Up> <Up>"add"ap<Up>
:nnoremap <C-Down> "add"ap
ที่นี่เราเพิ่ม"aก่อนลบและวางคำสั่งเพื่อจัดเก็บบรรทัดของเราใน@aregister ดังนั้น copy register เริ่มต้นของคุณจะไม่ถูกเขียนทับ อย่างไรก็ตามมันอาจเขียนทับเนื้อหาของ@aregister (ใครจะรู้ แต่คุณอาจใช้เพื่อบางอย่างที่สำคัญในกรณีการใช้งานของคุณ แต่ขั้นตอนนี้ค่อนข้างหวาดระแวงคุณสามารถข้ามไปได้หากต้องการ) มาแก้ไขด้วย:
:nnoremap <silent><C-Up> :let save_a=@a<Cr><Up>"add"ap<Up>:let @a=save_a<Cr>
:nnoremap <silent><C-Down> :let save_a=@a<Cr>"add"ap:let @a=save_a<Cr>
( <silent>จำเป็นเพื่อป้องกันไม่ให้สะท้อนคำสั่งของเราไปยังบรรทัดข้อความที่ด้านล่าง)
ตอนนี้เรามีการแมปสองแบบซึ่งช่วยให้เราสามารถย้ายบรรทัดภายในไฟล์ด้วยแป้นพิมพ์ลัด คุณสามารถกำหนดปุ่มใหม่ได้ฉันใช้Alt+ j/ kซึ่งจะเป็น<A-j>และ<A-k>สำหรับคำสั่งเหล่านั้น อย่างไรก็ตามตัวเลียนแบบเทอร์มินัลบางตัวไม่รองรับการแมปคีย์ Alt AFAIK
     
              
git config --global core.editor <whatever>เท่านั้นหรือหลาย ๆ อย่างพร้อมกัน (รวมถึงคอมไพล์) โดยรวมexport EDITOR=<whatever>ไว้ใน.bashrcไฟล์.