การแก้ปัญหาคือในความเป็นจริงการตั้งค่าตัวเลือกที่จะmouse=a
mouse=r
ปัญหาในการตั้งค่านี้/usr/share/vim/vim80/defaults.vim
ตามคำตอบที่ได้รับการยอมรับกล่าวคือมันจะถูกเขียนทับในการอัพเดททุกครั้ง ฉันค้นหาเป็นเวลานานและจบลงด้วยสิ่งนี้:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
โซลูชันในวิธีแรกคือการใช้ไฟล์. vmrc แบบโลคัลและตั้งค่าที่นั่น
ดังนั้นคุณสามารถสร้าง local .vimrc ( ~/.vimrc
) สำหรับผู้ใช้ทุกคนและตั้งค่าตัวเลือกของคุณได้ หรือสร้างหนึ่งใน/etc/skel
ดังนั้นมันจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับผู้ใช้ใหม่ทุกคนที่คุณสร้าง
แต่เมื่อคุณใช้ไฟล์. vmrc แบบโลคอลคุณจะต้องตั้งค่าตัวเลือกทั้งหมดที่นั่นเพราะหากมีไฟล์ใน.vimrc
ตัวเครื่องdefaults.vim
จะไม่โหลดเลย! และถ้าไม่มีท้องถิ่น.vimrc
การตั้งค่าทั้งหมดของคุณจะถูกเขียนทับ beeing defaults.vim
จาก
ฉันต้องการการกำหนดค่าส่วนกลางสำหรับผู้ใช้ทั้งหมดซึ่งโหลดตัวเลือกเริ่มต้นแล้วเพิ่มหรือเขียนทับค่าเริ่มต้นด้วยการตั้งค่าส่วนบุคคลของฉัน โชคดีที่มีตัวเลือกสำหรับว่าใน Debian การจะถูกโหลดหลังจากที่/etc/vim/vimrc.local
/etc/vim/vimrc
ดังนั้นคุณสามารถสร้างไฟล์นี้และปล่อยให้ค่าเริ่มต้นถูกโหลดป้องกันไม่ให้ถูกโหลดอีกครั้ง (ตอนท้าย) แล้วเพิ่มตัวเลือกส่วนตัวของคุณ:
กรุณาสร้างไฟล์ต่อไปนี้: /etc/vim/vimrc.local
" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.
" Load the defaults
source $VIMRUNTIME/defaults.vim
" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1
" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish
" Set the mouse mode to 'r'
if has('mouse')
set mouse=r
endif
(โปรดทราบว่า$VIMRUNTIME
ใช้ในข้อมูลโค้ดด้านบนมีค่า/usr/share/vim/vim80/defaults.vim
ดังนี้)
หากคุณต้องการเปิดใช้งาน "การคัดลอก / วางพฤติกรรมเก่า" ให้เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์นั้นด้วย:
" Toggle paste/nopaste automatically when copy/paste with right click in insert mode:
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction