Tôi đang xem xét liệu tôi có nên bắt đầu sử dụng lại VIM thay vì IDE không. Các tính năng hữu ích nhất của VIM không phải là tiêu chuẩn trong IDE là gì?
emacs
thay thế. ;-)
Tôi đang xem xét liệu tôi có nên bắt đầu sử dụng lại VIM thay vì IDE không. Các tính năng hữu ích nhất của VIM không phải là tiêu chuẩn trong IDE là gì?
emacs
thay thế. ;-)
Câu trả lời:
Tôi không nghĩ rằng các tính năng tiên tiến của VIM làm cho nó trở nên mạnh mẽ như vậy. Thực tế là bạn không bao giờ phải rời tay khỏi bàn phím để làm bất cứ điều gì. Tìm một cái gì đó trong một tập tin lớn chỉ đơn giản là một vài lần nhấn phím. Mở và đóng nhiều tệp trong cùng một cửa sổ cũng cực kỳ nhanh.
Mặc dù ban đầu nó có vẻ không trực quan, nhưng nó cũng đáng để bạn dành thời gian. Ngay cả khi bạn không sử dụng nó làm IDE tiêu chuẩn của mình (ví dụ tôi thường sử dụng Visual Studio hoặc Eclipse), bạn sẽ thấy chính mình sử dụng VIM để nhanh chóng mở và chỉnh sửa các tệp vì nó trở nên nhanh hơn so với việc chờ IDE tải trọng.
Đầu tư thời gian để tìm hiểu cách sử dụng VIM tốt và bạn sẽ không bao giờ hối tiếc. Tôi muốn nói nó tương đương với việc học kiểu chạm.
Đối với tôi :global
lệnh là một ứng dụng sát thủ. Nó sẽ thực thi các lệnh vim tùy ý trên bất kỳ dòng nào khớp (hoặc không khớp) với biểu thức chính quy.
Dưới đây là một số ví dụ:
Hành vi mặc định là liệt kê ra mọi dòng khớp, vì vậy:
:g/TODO:/
sẽ liệt kê mọi dòng có chứa văn bản "TODO:"
thay đổi 'Mickey' thành 'Minnie' trên bất kỳ dòng nào có chứa từ 'Chuột'
:g/Mouse/ s/Mickey/Minnie/
Các lệnh có thể có phạm vi riêng của chúng, vì vậy, lệnh này sẽ xóa khỏi mọi dòng với "TODO:" sang dòng trống tiếp theo:
: g / TODO: /., / ^ $ / d
Sử dụng: g! để thực thi trên mọi dòng KHÔNG khớp với regex, ví dụ: thay thế "emacs" bằng "vim" ngoại trừ trên các dòng có chứa từ "hút":
:g!/sucks/ s/emacs/vim/
Tôi thấy khả năng xóa mọi thứ ở giữa một tập hợp các biểu tượng được ghép nối vô cùng hữu ích. Ví dụ, khá thường xuyên, tôi sẽ thấy mình muốn thay thế một chuỗi trong mã. Vì vậy, di"
trong khi con trỏ ở trong khối sẽ xóa chuỗi, trong khi vẫn giữ ""
nguyên và đặt con trỏ ở giữa hai ký tự trích dẫn. da"
làm điều tương tự, nhưng cũng xóa các ký tự trích dẫn.
ci"
xóa và đặt con trỏ ở chế độ chèn để bạn có thể bắt đầu viết ngay lập tức.
'Hoàn thành chế độ chèn từ khóa'. Ctrl-P và Ctrl-N trong chế độ chèn để tìm kiếm qua văn bản để thử và hoàn thành bất kỳ tên biến nào bạn đang nhập. Tôi chưa bao giờ thấy điều này trong bất kỳ IDE nào khác và tôi thực sự nhớ nó. Hoàn thành mã trong IDE không giống nhau.
^X^O
omni-hoàn thành trong chế độ chèn, nếu bạn đã bật nó. Nhưng bạn nói đúng, tôi thấy mình sử dụng hoàn thành từ khóa nhiều hơn so với hoàn thành.
Một tính năng khác tôi thấy vô cùng hữu ích là khả năng thay đổi thụt đầu dòng. :15,30>>
thụt lề tất cả các dòng từ 15-30 (bao gồm) hai lần, trong khi :15,30<<
thụt lề các dòng giống nhau hai lần.
=
chỉ là, nếu không, hữu ích hơn <<
và >>
.
lệnh dd (xóa dòng hiện tại). Tôi sử dụng cái này rất nhiều.
Ngoài ra, có thể gõ một cái gì đó như 3dd và xóa 3 dòng tiếp theo là điều tuyệt vời. Tôi chưa bao giờ thấy điều này trong một trình soạn thảo khác = D
Các .
lệnh. Nó lặp lại lệnh cuối cùng.
Truy cập nhanh vào dòng lệnh. CTRL + Z hoặc: wqa sẽ giúp tôi nhận được một dòng lệnh trong chưa đầy 1 giây mà không cần rời tay khỏi bàn phím.
:!/bin/bash
. Tôi sử dụng :!
khá thường xuyên.
:sh
Điều này khá khó để trả lời, do phần nào sự mơ hồ của câu hỏi và phần nào do thực tế là IDE khác nhau, và nhiều tính năng cung cấp các tính năng mà người khác không có (và thực tế là tôi chỉ là một vài trong số họ).
Tuy nhiên, những gì tôi tin rằng phân biệt Vim từ các biên tập viên khác (vâng, ngay cả Emacs, trên cái này) là nó thực sự là một biên tập viên tuyệt vời . Tôi đã đi qua thời gian, đã sử dụng nhiều biên tập viên và có thể nói một cách trung thực rằng rất ít người đi kèm với một bộ tính năng hoàn chỉnh như vậy để thao tác văn bản, giống như Vim.
Ví dụ, phong cách thao tác văn bản của tôi, bao gồm rất thường xuyên sử dụng (dòng / lựa chọn một vài dòng) và di chuyển (dòng / lựa chọn một vài dòng) lên xuống, từ lâu tôi đã xác định các phím tắt nhanh. Tôi nhớ những tính năng đó trong hầu hết các IDE (mặc dù tôi đã nghe ReSharper cho VS có cái gì đó tương tự).
Bạn có biết rằng có một plugin vi cho nhật thực không? Nó có giá 15 euro (20 đô la Mỹ) nhưng nó rất đáng giá. Không còn dd
ở giữa một tài liệu, và thiếu tất cả những điều hữu ích nhỏ bé.
Có lẽ hơi lạc đề nhưng tôi nghĩ nó đáng để chỉ ra.
Tùy thuộc vào ngôn ngữ bạn đang lập trình, gắn bó với ide hoặc nhận ide cung cấp hầu hết các phép tái cấu trúc mà bạn có thể tìm thấy, hãy chia sẻ lại cho studio hình ảnh nếu bạn đang làm c #, intellij cho java hoặc hỗ trợ trực quan cho studio trực quan, tối đa các phép tái cấu trúc trong nhật thực hoặc netbeans.
Chúng ta nên chuyển từ thao tác văn bản sang thao tác mã, các công cụ tái cấu trúc cung cấp cho bạn khả năng đó. Nếu vim không cung cấp cho bạn tất cả các tính năng tốt, tôi sẽ không thực sự muốn đối phó với trình soạn thảo văn bản nữa
Hầu hết các IDE không cho phép bạn chia màn hình. Tôi thích tính năng đó trong VIM.
<C-w>