Đề xuất cho các mục trong một sysadmin .vimrc


21

Ít nhất tôi luôn không chú ý "cú pháp trên" trong / etc / vim / vimrc


Coi chừng, luôn có cú pháp trên có thể là một ý tưởng tồi nếu bạn thường chỉnh sửa các tệp lớn. Trên các tệp lớn (hàng chục hoặc hàng trăm MB), tô sáng cú pháp có thể khiến vim trở nên thiếu trách nhiệm trong vài giây, vì nó ăn rất nhiều CPU. Chỉ cần thử chỉnh sửa một tệp XML khổng lồ ... Tất nhiên bạn luôn có thể thực hiện: đồng bộ hóa (một khi vim đã khôi phục ...).
sleske

Câu trả lời:


4

CTO của chúng tôi có cấu hình Vim đầy tính năng trên GitHub .

Điểm nổi bật:

  • Làm nổi bật cú pháp, 2 tabstop không gian, các tab mở rộng.
  • NERDtree, chế độ xem dạng cây tệp tương tự như ngăn kéo dự án của TextMate.
  • FuzzyFile Downloader , plugin để thực hiện chức năng cmd-T của TextMate.
  • Rất nhiều chủ đề màu sắc với một mặc định (chạng vạng) đẹp.

Tôi thấy nó rất tuyệt cho mã hóa Ruby, vì các công cụ quản trị hệ thống của chúng tôi được viết bằng Ruby.


Tôi vừa mới chơi với một loạt những thứ này và còn nhiều điều nữa để điều tra với cấu hình vim mà bạn đã liệt kê nhưng nó phù hợp với kỳ vọng của tôi về các mặc định lành mạnh và các tính năng hữu ích. Không chắc chắn làm thế nào một wiki cộng đồng cho phép tôi bỏ phiếu như 'đã trả lời' nhưng dù sao đi nữa. Cảm ơn!
Gareth

17

Thứ nhất, nếu bạn có nhiều hơn một vài máy bạn làm việc với, hãy xem xét đặt của bạn ~/.vim/, ~/.vimrcvà các tập tin khác có ích cấu hình ( screen, shell của bạn, vv) trong một hệ thống kiểm soát phiên bản. Tôi thích sử dụng darcs- nó rẻ trên các hệ thống Debian (không cần cài đặt trình biên dịch Haskell, chỉ cần cài đặt gói trực tiếp), phân phối và có các chế độ tương tác tuyệt vời. Nếu bạn biết / thích git, bạn cũng có thể gắn bó với điều đó.

Các tập tin cấu hình hiện tại của tôi có sẵn trong kho darcs của tôi , http://repo.harnir.net/. Một số ví dụ cụ thể từ tôi làm ~/.vimrctheo. Xin lỗi, không có liên kết cho tập lệnh, v.v. bởi vì tôi là người dùng mới, nhưng tất cả những người bạn có thể tìm thấy http://vim.org/.

Kịch bản ViM cần thiết cho sysadmin

  • một kịch bản sao lưu là phải, khi bạn chỉnh sửa các tập tin từ xa. Tôi sử dụng tập lệnh cbackup.vim , giữ 10 bản sao cuối cùng của mỗi tệp đã chỉnh sửa trong một thư mục trung tâm và tự động xóa các tập tin cũ - chỉ cần đặt vào ~/.vim/plugins/thư mục của bạn và quên nó đi :-)

  • Tasklist phép bạn nhanh chóng tìm kiếm FIXME, XXXTODOthẻ trong tập tin hiện tại, hiển thị chúng và đi đến thẻ chỉ với một phím nhấn. Nếu bạn sử dụng các thẻ này, hãy xem xét việc cài đặt thẻ này

  • dbext rất cần thiết cho tất cả các DBA, cũng rất hữu ích cho các lập trình viên làm việc với cơ sở dữ liệu. Hãy để bạn chạy truy vấn, kiểm tra cấu trúc của cơ sở dữ liệu và không có gì. Nó thực chất là một kết thúc trước cho các công cụ như mysql, sqlite3, sqlplusvà những người khác. Nếu bạn làm việc với cơ sở dữ liệu, đó là điều bắt buộc!

Tập tin cú pháp

Tôi chưa thấy nhiều cú pháp hữu ích trong tự nhiên, hầu hết các tệp hệ thống hoạt động với các cấu hình /etcvà chúng thường được làm nổi bật khá tốt. Theo tôi ~/.vim/syntax/hiện tại tôi có cú pháp cho các màu CSS , rất tuyệt vời (cũng tốt cho các nhà phát triển web), nhưng phần còn lại không được viết tốt lắm, có lẽ tôi sẽ cập nhật chúng trong thời gian rảnh. Bổ sung tập tin cú pháp có giá trị dành cho: dhcpd.conf , / etc / network / giao diện , nginx file cấu hình, và SpamAssassin local.cf 's.

Mẹo hữu ích với cú pháp: nếu một tệp cấu hình không được nhận dạng (có một tên lạ, như /etc/apache2/sites-enabled/some.domain.com, bạn có thể nối thêm phần mở rộng chính xác vào tên của nó (trong trường hợp này .conf) hoặc thêm một mô hình ViM vào cuối của nó:

# vim: filetype = apache

Tùy chọn cấu hình ViM

Hầu hết các tùy chọn cấu hình là rất phổ biến, như set nocompatible rulervv Các tùy chọn rất tốt cần có là:

  • set gdefault: đảo ngược gchế độ trong s///g- với tùy chọn đó /gsẽ được sử dụng theo mặc định, vì vậy bạn không cần thêm nó mỗi lần - chỉ cần thêm nó để tắt nó đi

  • set incsearch ignorecase smartcase hlsearch: cần thiết để tìm kiếm thông qua các tệp - tăng dần, hiển thị các kết quả khớp trong thời gian thực, tìm kiếm bỏ qua trường hợp trừ khi bạn sử dụng chữ in hoa

  • set pastetoggle=<F6>: Hoặc phím khác mà bạn thích, Toggles giữa pastenopastecác chế độ, điều bắt buộc nếu bạn sao chép-dán một cái gì đó từ một trang web như ServerFault :-)

  • set noerrorbells visualbell t_vb=: thoát khỏi chuông gây phiền nhiễu hoặc chuông trực quan mỗi khi bạn làm gì đó;)

Chức năng, ánh xạ bàn phím

  • dán tên người dùng và ngày hiện tại của bạn vào một tệp, hữu ích nếu bạn làm việc trong một nhóm và thêm nhận xét trong các tệp về người đã thay đổi điều gì đó khi nào. Chỉ cần viết xxsigvà nhấn không gian, nó sẽ được thay đổi thành một cái gì đó như harnir 20090531. Để điều này hoạt động chính xác với root (tức là viết tên người dùng của bạn thay vì root), bạn cần đăng nhập bằng cách sử dụng sudo.

    iabenamev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` ngày '+ \% Y \% m \% d'` "\ | \ | tiếng vang "$ USER` ngày '+ \% Y \% m \% d'` "<CR> Tôi <BS> <Esc> A
    
  • Chèn bình luận "dòng", như # -- Some title -------------------{{{1, độ dài 78 ký tự - nhấn \com#trong chế độ bình thường và nó ở đó. Bạn sẽ tự động ở chế độ Thay thế để bạn có thể thêm tiêu đề:

    nmap \ com # O # <Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <Home> 4 <Right> R <Space>
    

Bạn có thể dễ dàng sửa đổi nó cho các hệ thống bình luận khác ( ", //, vv), hoặc chỉ cần kiểm tra tập tin cấu hình của tôi.

Kết thúc liên lạc

Nếu bạn có các tệp cấu hình trong hệ thống RCS, đôi khi bạn có thể muốn bao gồm các tùy chọn cấu hình dành riêng cho một máy nhất định. Vì thế, thật tốt khi có ~/.vimrc.localtệp, được bao gồm tự động ở cuối cấu hình (tất nhiên nếu có, tất nhiên).

nếu có thể ghi lại được (mở rộng ("~ / .vimrc.local"))
        nguồn ~ / .vimrc.local
endif

Mẹo cuối cùng - tốt mặc dù có thể - không hoạt động khi bạn có các thư mục nhà được gắn NFS: cho dù bạn đang sử dụng máy nào, thư mục chính của bạn sẽ giống nhau. Cũng lưu ý rằng mẹo đó phụ thuộc vào định nghĩa của "~" - một số vỏ không hỗ trợ tốc ký đó.
Mei

Là một sysadmin, bạn có thể làm việc trên các máy chủ trên tài khoản 'root', nên là cục bộ và không được gắn kết thông qua NFS. Trong trường hợp này /root/.vimrc.local sẽ hoạt động tốt.
Drybjed

6

Không thực sự chắc chắn phần nào trong số này có liên quan cụ thể đến sysadmin, nhưng điều cốt yếu của tôi là:

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

Tôi cũng luôn đảm bảo máy có quyền truy cập vào tập tin tô sáng cú pháp nginx .


Tôi chỉ diễn đạt nó như thế để phân tách những gì có thể liên quan đến 'lập trình' cụ thể cho một .vimrc Tôi có nên thay đổi câu hỏi không?
Gareth

Không, hãy để nguyên như vậy, tôi chắc chắn một số người có những thứ liên quan đến sysadmin, không phải tôi.
Adam Gibbins

Nói chung đồng ý với điều này ... Nhưng một tab là 8 khoảng trắng. Bất cứ điều gì khác và nó cư xử khác nhau trong vim sau đó trong ít / đuôi / mèo. Có thể là một trong những điều tôn giáo mặc dù.
Alexandre Carmel-Veilleux

4

Nếu bạn thường làm việc tại một người dùng, điều này có thể "chuyển" một tệp thành sudo để có thể lưu nó.

cmap w!! %!sudo tee > /dev/null %

sử dụng lệnh:

:w!!

để envoke sudo và lưu tập tin.


Hấp dẫn. Tại sao bạn sử dụng teethay vì cat?
David Schmitt

1
Bởi vì con mèo sẽ không viết bất cứ điều gì vào một tập tin; nó chỉ viết lên thiết bị xuất chuẩn.
Chris Jester-Young

mèo ->% Hoạt động tốt như vậy.
olle


2

Không biết xấu hổ cắm. Đây không thực sự là một thay đổi .vimrc mà là một plugin VIM. Tôi sử dụng RCSVers trên mọi phiên bản cài đặt của VIM. Về cơ bản, nó sử dụng lệnh RCS để lưu một phiên bản của bất kỳ tệp nào bạn chỉnh sửa. Bạn không biết bao nhiêu lần tôi đã vặn một tệp cấu hình để RCSVers lưu tôi bằng cách hiển thị cho tôi những thay đổi tôi đã thực hiện.

http://www.vim.org/scripts/script.php?script_id=563


2

Không sử dụng .vimrc để tránh học VIM

Vì tôi biết rằng rất nhiều người mới tham gia VIM sẽ đọc được điều này, nên gợi ý tốt nhất tôi có là: "Đừng lười biếng và đặt các mục bản đồ vào .vimrc của bạn" Học cách làm việc không chuẩn trong VIM sẽ khiến bạn cảm thấy như thế nào một cái nhìn tổng thể khi bạn không có vimrc của bạn. Đường cong học tập cho vi rất dốc, nhưng bạn không tự mình làm bất cứ điều gì bằng cách chọn không học.


1
Vim có các tính năng tốt đẹp. Tại sao không sử dụng nó ?? Khi bạn phải chuyển sang vi, đó là tạm thời. Nếu bạn nghĩ rằng bạn sẽ phải làm việc nhiều khi vim chưa được cài đặt, thì đáng để cài đặt nó.
Lục M

0

Ít nhất một phần câu trả lời của tôi giống như lập trình của tôi .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>

Nếu ít nhất một số tệp bạn đang chỉnh sửa không có trong RCS, thì chúng nên như vậy! :)


0

Vô hiệu hóa tất cả các chế độ thụt "thông minh". Tuyệt vời cho lập trình, địa ngục cho tập tin cấu hình.


0

Tôi thường kết thúc bằng cách sử dụng strace để theo dõi các vấn đề kỳ lạ. Kết quả là, cố gắng làm nổi bật cú pháp một số dòng có thể trở nên lố bịch với một chuỗi chuỗi lớn. Đây là trường hợp, tôi sử dụng set synmaxcol = 2048 để giới hạn cú pháp tô sáng ở 2048 cột.

Tôi cũng là một fan hâm mộ của plugin danh sách thẻ sử dụng các thẻ quá mức. Cho đến nay tôi đã có thể xoay quanh nhị phân ctags được biên dịch xung quanh và không gặp phải bất kỳ vấn đề thư viện nào. Điều này nhanh chóng cho phép tôi điều hướng trong số bất kỳ mã nào tôi làm việc cùng. Những người nói chung là Perl, Python hoặc C.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.