Bạn sử dụng tính năng Vim nào? [đóng cửa]


13

Tôi dành gần như cả ngày để lập trình trong Vim và tôi chắc chắn rằng rất nhiều bạn cũng vậy. Những tính năng nào bạn sử dụng làm cho mã hóa hàng ngày của bạn tốt hơn nhiều? Một cái mà tôi sử dụng là gv , nó sẽ cho phép bạn chọn lại văn bản đã chọn trước đó. Nó là tuyệt vời để reindent!


1
Đối với mục đích lịch sử, đây là một liên kết đến câu hỏi SO ban đầu: stackoverflow.com/questions/95072/iêu
Jax

Lưu ý nhận xét của tôi dưới đây và bạn thậm chí sẽ không phải gõ gv. :)
Nathan Long

Câu trả lời:


9

:% s / x / y / g

Lệnh này thay thế tất cả các phiên bản của x trong tệp hiện tại bằng y . Đây về cơ bản chỉ là một tìm kiếm và thay thế, nhưng tôi sử dụng nó rất thường xuyên vì tôi đã học được nó trong công việc mà nó đã trở nên vô giá.

Ngoài ra, / chuỗi tìm kiếm

sau đó n để điều hướng qua tất cả các phiên bản của chuỗi tìm kiếm trong tệp. Tuyệt vời để thực hiện các chỉnh sửa thủ công dễ dàng hơn rất nhiều, đặc biệt là nếu bạn không thể áp dụng quy tắc cho toàn bộ tệp.


Tôi thực sự đang làm việc để chuyển đổi một phần lớn của cơ sở mã của chúng tôi tại nơi làm việc và tôi đang làm điều đó hoàn toàn với các biểu thức chính quy của vim (cho đến nay). Nó hoạt động thực sự tốt!
Frew Schmidt

Thêm 'c' vào cuối của điều đó để làm cho lệnh tương tác. ví dụ:% s / x / y / gc
sml

1
Lưu ý rằng đó %là nơi để thực hiện thay thế - %có nghĩa là "tệp hiện tại." Nếu bạn trực quan làm nổi bật một số dòng và loại :s, bạn có thể thay thế chỉ trong lựa chọn đó.
Nathan Long

7

== tự động thụt lề đẹp trên dòng hiện tại.

Thông thường, mặc dù, tôi sử dụng =với một chuyển động, như =Gthụt vào cuối tập tin, hoặc =i}thụt vào bên trong bộ dấu ngoặc nhọn hiện tại.


2
Ngoài ra, hãy ghi nhớ >> và << có thể tự thụt lề (un).
Frew Schmidt

@Frew - vâng. Ngoài ra, nếu bạn thêm vmap <Tab> >gvvmap <S-Tab> <gvvào .vimrc, bạn có thể thụt lề và không liên kết với Tab và Shift-Tab, tương ứng, nó sẽ quay lại ngay vào chế độ lựa chọn trực quan để bạn có thể thụt lề hoặc không liên kết thêm.
Nathan Long

6

=% để tự động thụt lề mọi thứ trong một khối mã.


Ôi! Điều đó mới đối với tôi!
Frew Schmidt

Điều đó hoạt động nếu con trỏ của bạn ở đầu {. Nếu bạn ở trong khối, bạn có thể làm =i{, vì "thụt vào trong dấu ngoặc nhọn".
Nathan Long

5

Sử dụng *trong chế độ lệnh để tìm kiếm từ dưới con trỏ.


1
Và đừng quên lệnh chị em, #, thực hiện điều tương tự nhưng đi ngược lại thay vì chuyển tiếp!
Frew Schmidt

5

Các :!lệnh - vô giá cho lsing, và "sudo tee" lừa.

Tôi đã được yêu cầu giải thích các mẹo chơi tee. Về cơ bản, nó cho phép bạn lưu tệp văn bản với quyền quản trị viên, ngay cả khi bạn không khởi động VIM với quyền root:

:w !sudo tee %

Bạn có thể muốn giải thích thủ thuật "sudo tee" ở đây :-) Ngoài ra tôi thích làm :! Sắp xếp sau khi làm nổi bật các định nghĩa biến và không có gì.
Frew Schmidt

Bạn thực sự có thể biến Vim thành một trình soạn thảo "kịch bản" tuyệt vời bằng cách sử dụng :! và một số shell / Python / Perl / tập lệnh khác.
Jonas

Tôi thực sự có một giải pháp thay thế !ls, chạy a vnew, xuất ra r!lsbộ đệm mới và thu nhỏ nó theo chiều ngang. Tôi không thể bận tâm để nhớ tất cả các tệp trong một thư mục có hơn ba trong đó;)
new123456

4
.

Đánh vào. Phím lặp lại lệnh trước đó. Đáng yêu cho, nói, chỉnh sửa một .ini, hoặc như vậy.


Điều này là mạnh mẽ đáng ngạc nhiên, nhưng phải mất một chút vim-ing trước khi bạn thực sự có thể làm tốt với nó.
aaron


2

Tôi luôn luôn sử dụng gq để thực hiện lại ngắt dòng trên email, tệp văn bản, v.v ... Thực sự hữu ích khi trả lời email (tôi sử dụng thông) và chỉnh sửa nhiều trả lời trước đó.


Ôi, tôi hoàn toàn quên mất chuyện này!
Frew Schmidt

Tại sao, ồ tại sao, các ứng dụng email phổ biến hơn không thể hỗ trợ chức năng tương tự?
erichui

Gần đây tôi đang sử dụng gw thay vì gq vì nó giữ vị trí con trỏ
SergioAraujo

2

Bắt đầu từ đâu ... Đây là những thứ tôi có thể nhớ tôi đã sử dụng trong 5 phút gần đây.

  • Cây NERD - Khám phá tập tin. Làm cho VIM giống như một IDE.
    • Một điều rất lớn đối với tôi là khả năng vào cdmột thư mục và sau đó thả vào dấu nhắc shell thông qua ánh xạ shell của tôi (bên dưới).
  • ci để làm trống bất cứ thứ gì bạn bị mắc kẹt giữa.
  • :! để khởi chạy các ứng dụng tiêu chuẩn.
    • Tôi có ánh xạ để khởi chạy một dấu nhắc shell, máy khách mysql, tệp nhật ký apache, v.v.
    • Subversion tích hợp luôn luôn tốt đẹp. Nhanh diff, stats, v.v.
  • :abbr để thực hiện gõ lặp đi lặp lại của các khối lớn đi.
  • Tab. Tôi cần nói nhiều hơn?
  • Tách tập tin ra, luôn luôn tốt. :Sexluôn luôn tốt đẹp
  • :set paste! để tránh bị tự động chạy amok.

Tôi sử dụng tất cả những thứ này trừ abbr. Tôi có xu hướng tạo ra nhiều macro hơn viết tắt.
Frew Schmidt


1

Tôi sử dụng nhiều lệnh sau trong khi viết hoặc duyệt mã C / Tcl / Perl:

sao chép-dán mã

CTRL-fCTRL-bđối với chuyển động ngược và xuôi của trang đối với bắt đầu di
%chuyển ngang theo từng khối
^của
$ goto cuối dòng cuối

bắt đầu chọn mã bằng lệnh v(chế độ trực quan) và bất kỳ phím truyền tải nào ở trên
yđể sao chép
pđể dán

s để xóa một ký tự và chế độ chèn goto để nhập văn bản mới.

Chuyển đổi cấp mã (yêu cầu kỷ luật kiểu mã hóa)

]]để bắt đầu chức năng tiếp theo
[[để bắt đầu chức năng trước

CTRL-] để chuyển sang định nghĩa của biến / hàm / macro nếu thẻ có sẵn.

Tìm kiếm

* => từ tìm kiếm (hoặc văn bản được chọn bằng v) theo hướng chuyển tiếp
# => từ tìm kiếm (hoặc văn bản được chọn bằng v) theo hướng lùi
n => thực hiện lệnh tìm kiếm trước đó theo hướng chuyển tiếp
N => thực hiện lệnh tìm kiếm trước đó theo hướng lùi

Tất cả các lệnh trên có thể được thêm vào một số để biểu thị số lần thực hiện nó. Việc nhận ra sức mạnh của chiều không gian bổ sung này đến từ từ khi người ta sử dụng vim ngày càng nhiều và thách thức chính mình để cải thiện.


Ah,]] và [[là mới đối với tôi. Thật tuyệt!
Frew Schmidt

0

Tôi chỉ cần nhập văn bản. Mọi thứ khác chỉ là ... Đường.


0

Tôi là người dùng cũ của TextPad và đã ghi nhớ nhiều phím tăng tốc của chương trình đó. Một trong những điều đầu tiên tôi làm ở Vim là học chức năng bản đồ để giữ tính nhất quán (tìm kiếm F5, thay thế F8, v.v.). Tôi đã tạo màu sắc cá nhân của mình và mượn rất nhiều từ các tệp vimrc của người khác. Viva Vim! Cấu hình ở bất kỳ mức độ nào.

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.