Làm thế nào để đóng vim từ dòng lệnh?


46

Tôi biết đây là một câu hỏi linux chung nhưng w / e. Vì vậy, khi tôi nhập một chương trình như vim trong dấu nhắc lệnh, nó sẽ hiển thị tất cả văn bản trong tệp và tôi có thể chỉnh sửa nó. Nhưng tôi không thể tìm ra cách đóng hoặc lưu tệp và quay lại dấu nhắc lệnh mà không giết quá trình. Bất kỳ trợ giúp được đánh giá cao.




Câu trả lời:


72

Trong vim có 3 chế độ khác nhau:

  • Chèn - cho phép gõ và chỉnh sửa như bình thường
  • Trực quan - được sử dụng để chọn sao chép / dán, vv
  • Bình thường - được sử dụng cho các lệnh

Để trở về chế độ Bình thường, bạn luôn có thể nhấn esc.

Khi bạn ở chế độ Bình thường Nhấn :để bắt đầu lệnh của bạn (bạn sẽ thấy nó xuất hiện ở phía dưới bên trái). Các lệnh sau có liên quan đến việc thoát vim:

  • :q - bỏ nếu không có thay đổi
  • :q! - thoát và phá hủy mọi thay đổi được thực hiện
  • :wq - viết thay đổi (lưu) và thoát
  • :x- tương tự :wq, chỉ ghi tệp nếu thay đổi được thực hiện, sau đó thoát

4
:xlà một lối tắt cho:wq
Ward Muylaert

2
Bạn chỉ quên chế độ bình thường của người Viking. ồ Trên thực tế mode()hàm trong vim có thể trả về 18 giá trị riêng biệt.
Benoit

Như Benoit đã ám chỉ, câu trả lời này sử dụng một cách khó hiểu thuật ngữ "chế độ lệnh" để chỉ những gì tài liệu vim gọi là "chế độ bình thường". Các tài liệu vim coi chế độ lệnh là những gì bạn nhập bằng cách nhấn :trong chế độ bình thường. Nếu bạn nhấn esc, bạn trở lại chế độ bình thường. -1 vì đã gây hiểu lầm cho những người cố gắng học thuật ngữ tiêu chuẩn (và do đó có thể hiểu được hệ thống trợ giúp).
trực giác

6
@intuited Bất cứ ai cũng có thể đề xuất các chỉnh sửa, điều này có thể sẽ hữu ích hơn về lâu dài hơn là một cuộc bỏ phiếu và lời khuyên tốt được chôn vùi trong các bình luận.
Michael Martin-Smucker

Cảm ơn thông tin, nó cũng nên được hiển thị ở đâu đó trong VIM để người ta có thể biết ... thật vô lý khi tìm kiếm nó trên internet.
shridutt kothari

14

Đầu tiên, nhấn escapephím. 1

Sau đó, chỉ cần gõ ZZ(đó là hai chữ Z viết hoa liên tiếp).
Hoặc, loại :x. Hoặc sẽ lưu bất kỳ chỉnh sửa và để lại.
Bạn cũng có thể dùng:wq

Thay phiên, bạn có thể nhập :q (còn gọi là " thoát, vui lòng ") Điều này sẽ chỉ thoát nếu bạn chưa thực hiện chỉnh sửa.

Nếu bạn đã chỉnh sửa và bạn muốn loại bỏ chúng và rời đi, hãy gõ :q!(còn gọi là " thoát, chết tiệt !")

1 : Điều này đảm bảo bạn đang ở chế độ "lệnh". Mà bạn muốn gõ lệnh, giống như những lệnh cần thiết để thoát.


4

Phần lớn sự bất tiện của chúng tôi, không có phương pháp chung nào để thoát khỏi các chương trình dòng lệnh như có nút "X" cho các chương trình đồ họa.

Nhiều chương trình dòng lệnh tuân theo chủ đề sử dụng Q(ví dụ mantop) hoặc Ctrl+ C(ví dụ pingwatch) để thoát, nhưng điều này thay đổi đáng kể, đặc biệt là giữa các trình soạn thảo văn bản:

  • Vim đặc biệt sử dụng kết hợp tối nghĩa :q!sau đó Enter, thường được đi trước bởi một số lần nhấn Esccho biện pháp tốt.
  • Emacs , một loại đá quý khác, thích Ctrl+ Xtheo sau là Ctrl+ C.

Các biên tập viên như thế này là những cái bẫy cho người thiếu kinh nghiệm. Sở thích và đề xuất cá nhân của tôi là, khi bị buộc phải chỉnh sửa văn bản trên dòng lệnh, thay vào đó hãy sử dụng Trình chỉnh sửa riêng của Joe (JOE) tự giải thích hơn .


4
Tôi thực sự sẽ cho rằng đó nanolà một trình soạn thảo văn bản giao diện điều khiển tự giải thích phổ quát hơn nhiều.
jondavidjohn

@jondavidjohn Cuộc tranh cãi của bạn là tranh luận. Tôi đồng ý rằng nano không thể nghi ngờ là phổ quát hơn, và tôi không khẳng định rằng nó ít tự giải thích hơn JOE. Sở thích của tôi đối với JOE là do bộ tính năng mở rộng của nó và khuyến nghị của tôi đối với người dùng thiếu kinh nghiệm bị ảnh hưởng bởi sự tinh tế như việc sử dụng thuật ngữ Save thay cho WriteOut cổ xưa .
ændrük

Nói chung, bạn có thể sử dụng ^ Z để tạm dừng quá trình. Sau đó, bạn có thể giết nó, bỏ qua nó, đặt nó vào nền hoặc mang nó trở lại. (giết% 1 hoặc giết% x, bg, fg). Có một số thống nhất của kiểm soát công việc, dù sao.
belacqua

3

Bên cạnh câu trả lời của jondavidjohn, đây là hai liên kết có thông tin không thể thiếu về việc sử dụng vim.

  1. Đây là đồ họa bàn phím cho bạn biết mỗi phím làm gì tùy thuộc vào việc bạn đang ở chế độ chỉnh sửa, chế độ lệnh hay chế độ trực quan:

    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

  2. Đây là hướng dẫn vim tốt nhất mà tôi từng làm. Đó là cuộc trò chuyện và dễ hiểu, đó là do định dạng IRC / tin nhắn tức thời.

    http://www.vi-improved.org/tutorial.php

Cuối cùng, có một số người như aendruk đơn giản là không muốn sử dụng các trình soạn thảo văn bản dòng lệnh nâng cao. Vim đặc biệt có một đường cong học tập dốc, và thực sự phải mất một số nỗ lực ban đầu để làm quen. Nhưng nó rất nhanh và rất mạnh. Nếu bạn quan tâm đến linux ngoài việc sử dụng máy tính để bàn cơ bản, đáng để đầu tư thời gian tìm hiểu một trình soạn thảo văn bản dòng lệnh tốt như Vim hoặc Emacs. Nếu bạn chỉ cần chỉnh sửa một số văn bản và không quan tâm nhiều hơn thế, hãy thử gõ gedit filename.txtthay thế. Nó sẽ khởi chạy một chương trình đồ họa quen thuộc, giống như Notepad từ Windows.


@djeikyb: Tôi đánh giá cao việc bạn phân biệt giữa sử dụng máy tính để bàn cơ bản và chỉnh sửa văn bản dòng lệnh nâng cao. Thế mạnh của Ubuntu so với các bản phân phối Linux khác là khả năng làm cho máy tính để bàn Linux có thể truy cập được bởi những người dùng máy tính hàng ngày, những người mà tín dụng của nó ngày càng nhận thấy sự xa xỉ độc đáo không bao giờ cần biết các biên tập viên như Vim là gì.
ændrük

... Với sự tự do đặc biệt này, tôi đưa ra quyết định làm việc cao hơn các phương pháp dòng lệnh Linux truyền thống vì tôi có sự kiên nhẫn trong quá trình sử dụng máy tính hàng ngày. Tôi nỗ lực để chỉ sử dụng các công cụ đơn giản và dễ tiếp cận phần lớn vì tôi có thể đủ khả năng . Sẽ không chính xác khi nói rằng tôi chỉ đơn giản là không thích trình soạn thảo văn bản dòng lệnh. Ngược lại, tôi thích Vim với plugin VimOutliner của nó và tôi mắc nợ vì ảnh hưởng của nó đối với dự án Vimperator / Pentadactyl.
ændrük

... Tuy nhiên, tôi thấy việc sử dụng cá nhân của mình đối với các công cụ này là sai lệch so với sử dụng máy tính thông thường. Tôi cho rằng sẽ là một sự phát triển lành mạnh cho cộng đồng Ubuntu để ít gợi ý cho những người mới biết rằng việc sử dụng thường xuyên các công cụ tiên tiến với các đường cong học tập dốc là tiêu chuẩn của người dùng hàng ngày.
ændrük

@Letseatlunch, nếu mục tiêu của bạn là thành thạo Vim, thì bằng mọi cách tôi khuyến khích bạn tiếp tục theo đuổi nó. Tôi chỉ có ý truyền đạt rằng, trong khi, quan trọng, Ubuntu cung cấp nhiều công cụ tiên tiến như vậy mà các hệ điều hành khác thiếu hoàn toàn, học cách sử dụng chúng không bao giờ là một yêu cầu để sử dụng Ubuntu.
ændrük

Làm rõ tuyệt vời! Tôi sẽ chỉnh sửa câu trả lời của tôi để phản ánh tốt hơn điều này. Ngoài ra, tôi đặc biệt khuyên dùng gedit trên nano vì gedit ở cấp độ cao hơn với một gui quen thuộc và vì lúc đầu nano rất khó hiểu với tôi (biểu tượng caret có nghĩa là gì? Làm thế nào để tôi thoát? Làm thế nào để tôi tiết kiệm ??) . Điều này thật buồn cười, coi vim là biên tập viên tôi chọn.
djeikyb

2

nếu Esc :q!không hoạt động,

thử đầu tiên Ctrl+ q(để mở khóa màn hình đã bị khóa bằng Ctrl+ s)

sau đó thử lại Esc :q!(để thoát mà không lưu) hoặc Esc :wq(để lưu và thoát)


0

Muốn thoát mà không lưu:

  1. Đánh ESC
  2. Đánh ZQ

Thoát với lưu:

  1. Đánh ESC
  2. Đánh ZZ
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.