Trở nên tốt hơn tại Vim [đã đóng cửa]


116

Tôi đã sử dụng Vim trong một thời gian khá dài, nhưng tôi đang ở mức độ mà tôi sử dụng chế độ chèn hầu hết thời gian và tôi vẫn sử dụng các phím mũi tên để di chuyển (!).

Tôi cảm thấy như mình không khai thác được tốt nhất trình soạn thảo đáng yêu của mình, đặc biệt là về điều hướng (đặc biệt là mã), sao chép & dán và thực hiện các thao tác khác đối với mã hiện có. (mặc dù tôi khá thoải mái với các mẫu tìm kiếm / thay thế phức tạp).

  • Tôi nên tiếp tục học thêm như thế nào?
  • Mọi người sẽ giới thiệu những nguồn nào?

8
Có gì sai khi sử dụng các phím mũi tên để di chuyển? Đó là những gì họ dành cho !
Vilx-

39
@Vilx, bạn không di chuyển bằng các phím mũi tên ngay cả trong các trò chơi hành động trên máy tính ! Hãy để một mình trình soạn thảo văn bản ...
P Shved

6
@Vilx: Các phím mũi tên trên bàn phím nằm ở một nơi vô cùng bất tiện cho bất kỳ loại điều hướng nào. Đó là lý do tại sao quy luật trong ViM là sử dụng HJKL, giống như bạn sử dụng WASD trong trò chơi góc nhìn thứ nhất.
Will Vousden

4
WASD ở đó vì nó dễ sử dụng hơn bằng tay trái, vì tay phải điều khiển chuột. Những người thuận tay trái sử dụng các mũi tên. Và HJKL rất phản trực giác. Cái nào di chuyển ở đâu?
Vilx-

8
Tôi nghĩ nó không phải về "mũi tên vs hjkl" vì nó là "chuyển động con trỏ so với đối tượng văn bản".
Matteo Riva

Câu trả lời:


78

"Tại sao, oh TẠI SAO, những kẻ #? @! Nutheads sử dụng vi?" là một phần giới thiệu hay về "cách Vim", đặc biệt là về các đối tượng văn bản là một trong những tính năng nổi bật nhất của Vim.


3
Như một phần thưởng, có một bảng gian lận đồ họa đẹp mắt (được liên kết ở cuối bài viết).
Csaba_H

Dường như tôi không thể truy cập liên kết đó. Ngay cả với cuộn tóc cũng không. Có ai có thể xác nhận?
H.Rabiee

66

Dưới đây là một số video truyền hình tuyệt vời sẽ cung cấp cho bạn ý tưởng về những gì cần học tiếp theo. Ngoài ra còn có các video dành cho các chủ đề trung cấp và nâng cao, nhưng những video dành cho người mới thực sự là quan trọng nhất.

Ngoài ra, khi tôi cảm thấy mình bị trì trệ và không thực sự học được "cách Vim", tôi đã chọn tắt các phím mũi tên ở cả chế độ bình thường và chế độ chèn. Điều này buộc bạn phải sử dụng ESC để đến một nơi nào đó và khiến bạn có suy nghĩ giống Vim hơn. Cuối cùng, tôi đã bật lại các phím mũi tên ở chế độ chèn, nhưng tôi hầu như không bao giờ sử dụng chúng. Thông thường, có những cách tốt hơn để đi lại.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

Và đặc biệt

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
Tôi thích ý tưởng tắt các phím mũi tên, đó là một cách hay để buộc bản thân ngừng sử dụng chúng.
Idan K

1
Nó hoạt động rất tốt đối với tôi, nhưng những ngày đầu tiên tôi vô cùng bực bội. Tuy nhiên, khi bạn đã quen với nó và bỏ thói quen di chuyển QUÁ nhiều trong chế độ chèn, tôi khuyên bạn nên kích hoạt lại imap.
Sarah

Những đoạn phim này thật tuyệt vời. Cảm ơn vì đã chỉ ra.
Mert Nuhoglu

2
Vô hiệu hóa các phím mũi tên là một ý tưởng TUYỆT VỜI, tôi đang thực hiện ngay bây giờ.
gorsky 22/10/10

Vô hiệu hóa các phím mũi tên dựa trên một giả định rằng các phím mũi tên không có lợi hơn hjkl. Tốt hơn là có được một bàn phím tốt hơn. Tôi sử dụng Kinesis Advantage. Ngay cả khi tôi đang sử dụng bàn phím tiêu chuẩn, hjkl vẫn không có ý nghĩa gì vì tôi sử dụng dvorak. Ý tôi muốn nói là: vấn đề không phải là "không sử dụng các phím mũi tên", mà là "Sử dụng các phương tiện hiệu quả nhất và không trốn tránh việc đạt được hiệu quả vì một đường cong học tập."
Sự Chuộc Tội Có Giới Hạn vào

23
  1. vimtutortrên dòng lệnh
  2. vào vim, gõ: help hoặc <F1>
  3. đăng ký danh sách gửi thư
  4. tài liệu vim chính thức

1
Một điều tôi đã không xem xét là tham gia vào danh sách gửi thư: xong ngay bây giờ :)
James

1
Đó là một nơi tốt để nhận được sự giúp đỡ và rèn luyện kỹ năng khí lực của bạn bằng cách giải quyết vấn đề của người khác.
ghostdog 74

1
+1 cho vimtutor - cách tuyệt vời để đưa vim vào bộ nhớ cơ của bạn.
Hamish Downer

16

Hai mẹo nữa:

  • Sử dụng Vim để chỉnh sửa mọi thứ (email, biểu mẫu web, mã, ...). Khi điều gì đó cảm thấy chậm, có lẽ có một cách nhanh hơn để làm điều đó. :helpgreplà bạn của bạn.

  • Trụ sở để http://vimgolf.com/ và cạnh tranh. Tôi đã học được nhiều mẹo và thủ thuật theo cách đó. [ Tuyên bố từ chối trách nhiệm : Không chịu trách nhiệm trong thời gian dài "mất tích" khi thi đấu tại VimGolf ].


2
Gọn gàng, tôi không biết về vimgolf!
James

1
@Autopulated: Đã thêm tuyên bố từ chối trách nhiệm.
Johnsyweb

2
@Johnsyweb: Tôi thực sự muốn có thể sử dụng vim cho mọi thứ-- nhưng làm thế nào? Có được một bản sao vim phù hợp bên trong mọi biểu mẫu web sẽ là lý tưởng - bởi vì tất cả các tiện ích bổ sung của trình duyệt mà tôi đã tìm thấy thường chỉ triển khai một tập hợp con ngẫu nhiên nhỏ các tính năng vim và ánh xạ lại các liên kết chính để có chỗ cho thực tế là trình duyệt vẫn cần truy cập vào các bản đồ chính nhất định.
Conrad.Dean


10

Đây là cách tôi đã học Vim (và nhiều thứ khác). Nó khá dễ dàng.

Duyệt qua các tài liệu trợ giúp và tìm lệnh cho việc gì đó bạn luôn làm. Xóa cả một từ chẳng hạn. Hãy ghi nhớ điều này.

Bây giờ, lần sau khi bạn thấy mình nhấn 'xxxxx' để xóa một từ, hãy dừng lại, đặt lại và sử dụng lệnh mới. Tra cứu nó nếu bạn phải. Vì vậy, thay vì nhấn 'xxxxxx', bạn quay lại và nhấn 'dw'.

Làm đi làm lại việc này, lúc đầu sẽ chậm nhưng cuối cùng sẽ thành công.

Khi bạn có lệnh đó xuống, hãy bắt đầu ở trên cùng. Tìm một lệnh khác cho một hành động mà bạn thường làm ...

Bạn sẽ ngạc nhiên khi bạn có thể chọn các lệnh và kỹ thuật mới theo cách này nhanh như thế nào.


7

Nhắc lại / tắt các phím mũi tên như đã được gợi ý là một cách tuyệt vời để buộc bạn không sử dụng chúng.

Một điều khác cần xem xét: nếu việc nhấn Esc trên bàn phím của bạn không thoải mái chút nào, bạn có thể muốn hoán đổi Caps Lock thành Esc trong hệ điều hành của mình. Đối với tôi, đây là một bước cực kỳ hữu ích, vì Esc là một phạm vi tiếp cận khó xử trên KB của tôi và đó là một trở ngại khác khiến tôi ở chế độ Chèn (vì rất khó thoát ra). Việc có Esc trên Caps Lock giúp nó trở nên vô cùng nhỏ và nhảy vào và ra khỏi chế độ Chèn rất nhanh.

Để học những thứ nâng cao trong Vim, tài nguyên tốt nhất là: help, nhưng để hiểu những điều cơ bản, bạn chỉ cần làm điều đó; đó là trí nhớ cơ bắp hơn bất cứ thứ gì. Bạn nói rằng bạn biết tìm kiếm. Có ý thức sử dụng nó như một công cụ điều hướng. Các tìm kiếm [/,?] Và các tìm kiếm dựa trên ký tự nội tuyến [f, F, t, T] là một số công cụ Vim nav chính. Chỉ cần sử dụng chúng; kết hợp với các phím con trỏ bị vô hiệu hóa, bạn sẽ nhanh chóng điều hướng trên bộ nhớ cơ bắp.

Đối tượng Văn bản. Dễ dàng là một trong những tính năng tốt nhất của trình chỉnh sửa. Đây là việc khác phải lập tức có ý thức thực hành. Những thứ như 'yiw', 'dit', v.v. rất mạnh mẽ và nhanh chóng; học và sử dụng chúng một mình sẽ khiến bạn cảm thấy mình là người dùng Vim.

Khi bạn đã có các đối tượng văn bản và điều hướng cơ bản, thì đã đến lúc chuyển sang đọc và học từ: trợ giúp thường xuyên và tìm kiếm trên web để tìm các plugin tuyệt vời. Nghiêm túc mà nói, bạn có thể sử dụng Vim trong nhiều năm và "ah ha!" khoảnh khắc vô tình vấp phải một số mẩu tin khó hiểu trong: trợ giúp mà bạn chưa từng biết.


Thay vì ánh xạ lại Caps Lock, tôi sẽ đề xuất Ctrl-C. Đây là cách gõ dễ dàng và khá quen thuộc với người dùng linux.
BandGap

6

Xem chủ đề này: Lối tắt hiệu quả nhất của bạn với Vim là gì?

Đặc biệt là câu trả lời đầu tiên.


3
Công bằng mà nói, với tư cách là tác giả của câu trả lời "đầu tiên", tôi phải nói rằng nó không nhất thiết phải là hướng dẫn tốt nhất để nói chung nâng cao trình độ thành thạo của bạn về trình soạn thảo. Nó bao gồm rất nhiều cơ sở về những gì có thể được thực hiện với vi khi bạn coi nó như một ngôn ngữ để diễn đạt những cách bạn muốn thao tác văn bản, màn hình / thiết bị đầu cuối của bạn và môi trường của chính trình soạn thảo. Tuy nhiên, rất nhiều thứ trong đó khá tiên tiến.
Jim Dennis

1
Tôi đã không học được nhiều từ việc đọc câu trả lời đó đến nỗi tôi không nghĩ rằng mình sẽ không bao giờ học được nếu không đọc tài liệu!
James


3

Tôi nên tiếp tục học thêm như thế nào?

Đọc hướng dẫn sử dụng vim hoàn toàn (nhập :h; bạn có thể duyệt từ đó). Đây là cách bạn làm quen với tất cả các chuyển động và lệnh. Điều đó hữu ích nhất nếu bạn đã biết những điều cơ bản và muốn cải thiện.

Mọi người sẽ giới thiệu những nguồn nào?

vim.org, xem qua các tập lệnh vim phổ biến nhất . Kiểm tra nguồn của chúng nếu bạn tìm thấy một cái gì đó quan tâm. Hoặc chỉ cần cài đặt chúng và tận hưởng. Trang web đó bao gồm rất nhiều liên kết đến các tập lệnh giúp duyệt mã nguồn bằng các ngôn ngữ khác nhau; và tương đối dễ dàng tìm thấy chúng ở đó.

StackOverflow.com cũng có thể hữu ích .


3

Tôi làm trò chơi này để giúp cháu trai học, nhưng nó chỉ hoạt động trên Firefox và Chrome>. < http://kikuchiyo.org

Hiện tại, nó chỉ xử lý chuyển động và vào chế độ chèn. Phiên bản beta cho phép bạn tấn công kẻ thù bằng light-saber, 'i' ở bên trái và 'a' ở bên phải: P

Hãy tiếp tục cố gắng học Vim, rất đáng để nỗ lực!

:)


Bây giờ đó là một ý tưởng thực sự tốt!
James

Cập nhật: trang web hiện có tại kikuchiyos-vim-game.herokuapp.com .
kikuchiyo


2

Tôi vẫn sử dụng các phím mũi tên để di chuyển (!).

Tôi không thấy có vấn đề gì với điều này.

Thành thật mà nói, xác suất bạn sẽ phải sử dụng vim và bàn phím thiếu phím mũi tên là bao nhiêu?

Bạn biết đấy, hầu hết mọi người sử dụng vim vì nó thực hiện công việc (ồ, vì họ đã thành thạo nó ở một mức độ khi nó thực hiện công việc cho họ), chứ không phải vì những người theo chủ nghĩa tinh hoa (như không sử dụng các phím mũi tên).

Một vài lời khuyên để nâng cao kiến ​​thức vim của bạn:

  • định kỳ mở trợ giúp vim ở một nơi ngẫu nhiên và đọc về một tính năng khác biệt ngẫu nhiên. Bạn sẽ mất vài phút. Có thể bạn sẽ không sử dụng tính năng này trong X năm tới. Nhưng nếu bạn may mắn, bạn sẽ ở trong một tình huống khi bạn sẽ thấy rằng bạn có thể áp dụng kiến ​​thức của mình về tính năng đó để đạt được một nhiệm vụ nhất định. Bạn sẽ mở lại phần trợ giúp để làm mới bộ nhớ của mình. Sau khi sử dụng tính năng này trong thực tế một vài lần, nó sẽ hoạt động. Lúc này kiến ​​thức vim của bạn sẽ được nâng cao.
  • sử dụng: helpgrep để tìm hiểu các vị trí ngẫu nhiên của tài liệu. Nếu bạn cần làm điều gì đó và bạn tìm thấy nơi giải thích nó trong tài liệu, đừng dừng lại ở đó. Đọc đoạn mã tài liệu một lần nữa. Tìm các từ khóa. Đối với mỗi từ khóa, hãy sử dụng từ khóa: helpgrep để khám phá các liên kết hợp lý với các phần khác của tài liệu vim.

Tôi đoán vấn đề mà tôi gặp phải khi chỉ đọc tài liệu là tôi thấy mình không học được mọi thứ một cách hiệu quả mà không thực sự thực hiện chúng.
James

1
Sử dụng các phím con trỏ để di chuyển con trỏ trong khoảng cách ngắn có thể hiệu quả tương tự như sử dụng các phím [h], [j], [k], [l] ... nếu ngón tay của bạn ở gần chúng vì một số lý do khác. Sử dụng bất kỳ chuyển động con trỏ tuyến tính nào là điều kinh khủng đối với nhiều cột hoặc dòng chuyển động. Thông thường, tốt nhất bạn nên nghĩ về những gì bạn đang tìm kiếm và thể hiện điều đó trực tiếp bằng cách sử dụng dấu / hoặc? lệnh và biểu thức chính quy. Phần cuối cùng của văn bản gần foo? G? Foo [Enter] (sáu lần nhấn phím). Dòng đầu tiên có "bar ... something .. bang in it? 1G / bar. * Bang [Enter] (khoảng một chục lần nhấn phím) ... và v.v.
Jim Dennis

Mặc dù các phím mũi tên có thể hiệu quả hơn so với với chuột, nhưng nếu bạn nhập bằng cách sử dụng các phím hàng chính để tập hợp lại các bàn tay sau khi nhập một chuỗi ký tự, thì bạn không cần phải di chuyển để nhập một trong các phím di chuyển cơ bản của 'j', 'k', 'l' và một chút 'giật' sang trái để lấy phím 'h'. Nếu bạn làm mọi việc theo cách Vim, tay của bạn phải luôn ở gần các phím trên hàng chính hơn là các phím mũi tên. Hãy tiếp tục luyện tập và bạn sẽ đạt được điều đó. :)
kikuchiyo


2

cách tôi ngừng sử dụng các phím mũi tên không phải là vô hiệu hóa chúng (tôi vẫn sử dụng chúng ở chế độ Chèn) nhưng nếu bạn nghĩ về điều đó nếu bạn muốn đi sang phải, hãy sử dụng ngón út của bạn là lphím, chuyển sang trái Ngón trỏ là hphím, & ngón đeo nhẫn lên (" kbấm chuông") phím & "nhấc" jphím xuống .

Vì vậy, đầu tiên trong bốn chữ số trên bàn tay của bạn (quên ngón tay cái) Chỉ số một ở ngoài cùng bên trái và Pinky ở ngoài cùng bên phải. Sử dụng thành ngữ "nhẫn lên" như trong cuộc gọi điện thoại để nhấc ngón áp út lên và ngón giữa không có nơi nào khác để đưa ra ngoài.

Nó cũng giúp ích rất nhiều cho tôi khi quên các phím được đặt tên (h, j, k, l). Không có cách ghi nhớ tốt để ghi nhớ chúng theo cách mà tôi đã tìm thấy và cũng không có quá nhiều ánh xạ sử dụng các phím đó.





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.