อย่างน้อยที่สุดฉันมักจะคอมเม้นท์ "ซินแทกซ์" ใน / etc / vim / vimrc
อย่างน้อยที่สุดฉันมักจะคอมเม้นท์ "ซินแทกซ์" ใน / etc / vim / vimrc
คำตอบ:
CTO ของเรามีคุณสมบัติที่เต็มไปด้วยรักการกำหนดค่าที่เป็นกลุ่มบน GitHub
ไฮไลท์:
ฉันคิดว่ามันยอดเยี่ยมสำหรับการเขียนรหัส Ruby เนื่องจากเครื่องมือการจัดการระบบของเราเขียนด้วย Ruby
ขั้นแรกถ้าคุณมีมากกว่าเครื่องคู่ที่คุณทำงานด้วยพิจารณาวางของคุณ~/.vim/
, ~/.vimrc
และอื่น ๆ ที่มีประโยชน์ config ไฟล์ ( screen
เปลือกของคุณ ฯลฯ ) ในระบบการควบคุมการแก้ไข ฉันชอบที่จะใช้darcs
- มันราคาถูกในระบบ Debian (ไม่จำเป็นต้องติดตั้งคอมไพเลอร์ Haskell เพียงติดตั้งแพ็คเกจโดยตรง) กระจายและมีโหมดการโต้ตอบที่ยอดเยี่ยม ถ้าคุณรู้ / ชอบgit
คุณสามารถยึดติดกับสิ่งนั้นได้
config ไฟล์ปัจจุบันของฉันที่มีอยู่ในพื้นที่เก็บข้อมูล Darcs http://repo.harnir.net/
ของฉัน ตัวอย่างเฉพาะจากการ~/.vimrc
ติดตามของฉัน ขออภัยไม่มีลิงก์สำหรับสคริปต์ ฯลฯ เนื่องจากฉันเป็นผู้ใช้ใหม่ แต่ทุกอย่างที่คุณสามารถหาhttp://vim.org/
ได้
สคริปต์สำรองเป็นสิ่งจำเป็นเมื่อคุณแก้ไขไฟล์ระยะไกล ฉันใช้สคริปต์cbackup.vimซึ่งเก็บ 10 สำเนาล่าสุดของแต่ละไฟล์ที่แก้ไขในไดเรกทอรีกลางและลบไฟล์เก่าโดยอัตโนมัติ - เพียงแค่ใส่ใน~/.vim/plugins/
ไดเรกทอรีของคุณและลืมมัน :-)
Tasklistช่วยให้คุณสามารถค้นหาได้อย่างรวดเร็วFIXME
, XXX
และTODO
แท็กในไฟล์ปัจจุบันแสดงให้พวกเขาและไปที่แท็กที่มีเพียงหนึ่งกดปุ่ม หากคุณใช้แท็กเหล่านี้ให้ลองติดตั้งแท็กนี้
dbextเป็นสิ่งจำเป็นสำหรับ DBA ทั้งหมดและมีประโยชน์มากสำหรับโปรแกรมเมอร์ที่ทำงานกับฐานข้อมูล ให้คุณเรียกใช้คิวรีตรวจสอบโครงสร้างของฐานข้อมูลและอะไรก็ได้ มันเป็นหลักส่วนหน้าสำหรับเครื่องมือชอบmysql
, sqlite3
, sqlplus
และอื่น ๆ ถ้าคุณทำงานกับฐานข้อมูลมันเป็นสิ่งที่ต้องทำ!
ฉันไม่ได้เห็นซินแท็กซ์ที่มีประโยชน์มากมายในไวลด์ส่วนใหญ่ sysadmins ที่ทำงานกับไฟล์นั้นจะถูกปรับแต่ง/etc
และพวกมันมักจะถูกเน้นให้ดี ใน~/.vim/syntax/
ปัจจุบันฉันมีไวยากรณ์ของสี CSSซึ่งยอดเยี่ยม (ดีสำหรับนักพัฒนาเว็บ) แต่ส่วนที่เหลือเขียนไม่ค่อยดีฉันอาจอัปเดตในเวลาว่าง ไฟล์ไวยากรณ์เพิ่มเติมที่ควรมีสำหรับ: dhcpd.conf , / etc / network / interfaces , ไฟล์กำหนดค่าnginxและlocal.cf ของSpamAssassin
เคล็ดลับที่มีประโยชน์พร้อมไวยากรณ์: หากไม่รู้จักไฟล์การกำหนดค่า (มีชื่อแปลก ๆ เช่น/etc/apache2/sites-enabled/some.domain.com
คุณสามารถต่อท้ายชื่อนามสกุลที่ถูกต้อง (ในกรณีนี้.conf
) หรือเพิ่ม ViM modeline ที่ส่วนท้าย:
# vim: filetype = apache
ตัวเลือกการกำหนดค่าส่วนใหญ่ได้รับความนิยมอย่างมากเช่นset nocompatible ruler
ตัวเลือกอื่น ๆ ที่มีอยู่:
set gdefault
: เข้าสู่g
โหมดในs///g
- /g
โดยค่าเริ่มต้นจะใช้ตัวเลือกนั้นดังนั้นคุณไม่จำเป็นต้องเพิ่มทุกครั้ง - เพียงแค่เพิ่มเพื่อปิด
set incsearch ignorecase smartcase hlsearch
: จำเป็นสำหรับการค้นหาผ่านไฟล์ - ส่วนเพิ่ม, แสดงรายการที่ตรงกันแบบเรียลไทม์, การค้นหาจะไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ยกเว้นว่าคุณใช้ตัวอักษรตัวพิมพ์ใหญ่
set pastetoggle=<F6>
: หรือปุ่มอื่น ๆ ที่คุณต้องการสลับระหว่างpaste
และnopaste
โหมดต้องเลือกคัดลอกบางอย่างจากหน้าเว็บเช่น ServerFault :-)
set noerrorbells visualbell t_vb=
: กำจัดเสียงระฆังหรือระฆังที่น่ารำคาญทุกครั้งที่คุณทำอะไร)
วางชื่อผู้ใช้และวันที่ปัจจุบันลงในไฟล์ซึ่งมีประโยชน์หากคุณทำงานเป็นทีมและเพิ่มความคิดเห็นในไฟล์เกี่ยวกับผู้ที่เปลี่ยนแปลงบางอย่างเมื่อ เขียนเพียงและกดพื้นที่ก็จะมีการเปลี่ยนแปลงเพื่อสิ่งที่ต้องการxxsig
harnir 20090531
สำหรับการทำงานอย่างถูกต้องกับราก (เช่น. เขียนชื่อผู้ใช้ของคุณแทนroot
) sudo
คุณต้องเข้าสู่ระบบโดยใช้
iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` date '+ \% Y \% m \% d'\ "\ | \ | echo "$ USER` date '+ \% Y \% m \% d'` "<CR> ฉัน <BS> <Esc> A
แทรกความคิดเห็น "เส้น" เช่น# -- Some title -------------------{{{1
ความยาว 78 ตัวอักษร - กด\com#
ในโหมดปกติและมี คุณจะอยู่ในโหมดแทนที่โดยอัตโนมัติเพื่อให้คุณสามารถเพิ่มชื่อ:
nmap \ com # O # <Esc>72A-<Esc>3A{<Esc>A1<Esc> <Home> 4 <Right> R <Space>
คุณสามารถปรับเปลี่ยนได้สำหรับระบบความคิดเห็นอื่น ๆ ( "
, //
ฯลฯ ) หรือเพียงแค่ตรวจสอบการตั้งค่าของฉันไฟล์
หากคุณมีไฟล์กำหนดค่าในระบบ RCS คุณอาจต้องการรวมตัวเลือกการกำหนดค่าเฉพาะสำหรับเครื่องบางเครื่อง เพื่อให้เป็นสิ่งที่ดีที่จะมี~/.vimrc.local
ไฟล์รวมอยู่โดยอัตโนมัติในตอนท้ายของการกำหนดค่า (ถ้าเป็นปัจจุบัน)
ถ้า filereadable (ขยาย ("~ / .vimrc.local")) source ~ / .vimrc.local endif
ไม่แน่ใจจริงๆว่าส่วนใดของส่วนนี้เกี่ยวข้องกับการดูแลระบบเฉพาะ แต่สิ่งสำคัญของฉันคือ:
syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
filetype plugin indent on
endif
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
ฉันยังเสมอให้แน่ใจว่าเครื่องที่มีการเข้าถึงไฟล์ไวยากรณ์ Nginx ไฮไลต์
หากคุณมักจะทำงานที่ผู้ใช้มากกว่านี้ทำให้ "ท่อ" ไฟล์ไปยัง sudo เพื่อให้สามารถบันทึก
cmap w!! %!sudo tee > /dev/null %
ใช้คำสั่ง:
:w!!
เพื่อเรียกใช้ sudo และบันทึกไฟล์
tee
แทนcat
?
คุณสามารถดูคำถาม SO นี้: มีอะไรใน vimrc ของคุณ ?
ปลั๊กไร้ยางอาย นี่ไม่ใช่การเปลี่ยนแปลง. vimrc จริงๆ แต่เป็นการใช้ปลั๊กอิน VIM ฉันใช้ RCSVers กับ VIM ทุกเวอร์ชันที่ติดตั้ง โดยทั่วไปจะใช้คำสั่ง RCS เพื่อบันทึกเวอร์ชันของไฟล์ใด ๆ ที่คุณแก้ไข คุณไม่รู้กี่ครั้งที่ฉันเมาไฟล์การตั้งค่าเพื่อให้ RCSVers ช่วยฉันด้วยการแสดงการเปลี่ยนแปลงที่ฉันทำ
เนื่องจากฉันรู้ว่ามีผู้มาใหม่ VIM จำนวนมากที่จะอ่านสิ่งนี้คำแนะนำที่ดีที่สุดที่ฉันมีคือ: "อย่าขี้เกียจและใส่แผนที่ลงใน. vimrc ของคุณ" การเรียนรู้วิธีการที่ไม่ได้มาตรฐานในการทำสิ่งต่างๆใน VIM จะทำให้คุณรู้สึกเหมือน รวมขลิบด้ายเมื่อคุณไม่มี vimrc ของคุณ เส้นโค้งการเรียนรู้สำหรับ vi นั้นสูงชัน แต่คุณไม่ได้ทำสิ่งใดด้วยตนเองโดยเลือกที่จะไม่เรียนรู้
อย่างน้อยส่วนหนึ่งของคำตอบของฉันก็เหมือนกับการเขียนโปรแกรมของฉัน. vimrc:
set hidden
map <TAB> :e#<CR>
map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>
หากอย่างน้อยไฟล์บางไฟล์ที่คุณแก้ไขไม่ได้อยู่ใน RCS ควรเป็น! :)
ปิดใช้งานโหมดการเยื้อง "ฉลาด" ทั้งหมด ยอดเยี่ยมสำหรับการเขียนโปรแกรมเหมาะสำหรับไฟล์ปรับแต่ง
ฉันมักจะจบลงด้วยการใช้ strace เพื่อติดตามปัญหาแปลก ๆ ดังนั้นการพยายามเน้นไวยากรณ์ของบางบรรทัดสามารถทำให้ไร้สาระด้วยสตริงสตริงขนาดใหญ่ ในกรณีนี้ฉันใช้ set synmaxcol = 2048 เพื่อ จำกัด การเน้นไวยากรณ์ที่คอลัมน์ 2048
ฉันยังเป็นแฟนของปลั๊กอินรายการแท็กที่ใช้แท็กที่อุดมสมบูรณ์ จนถึงตอนนี้ฉันสามารถกด ctags ไบนารีที่คอมไพล์แล้วและยังไม่เจอปัญหาไลบรารีใด ๆ สิ่งนี้ช่วยให้ฉันสามารถนำทางระหว่างรหัสใด ๆ ที่ฉันทำงานด้วยได้อย่างรวดเร็ว โดยทั่วไปแล้วจะเป็น Perl, Python หรือ C