Có trường hợp vi là lựa chọn duy nhất?


22

Có kịch bản nào vilà tùy chọn duy nhất để tạo, chỉnh sửa hoặc sửa đổi tệp trong môi trường Ubuntu không?

Câu hỏi của tôi về cơ bản là thực sự biết nếu có một trường hợp như vậy mà tôi sẽ bị buộc phải sử dụng vibởi vì đó sẽ là lựa chọn duy nhất có sẵn trong một trường hợp cụ thể trong hệ sinh thái Ubuntu.

Có thể là một trường hợp đặc biệt tồn tại nơi tôi bằng cách nào đó sẽ không có quyền truy cập vào tùy chọn khác như nano, picohoặc đơn giản là gửi thông tin với các công cụ như cat, sed, teevà nhiều hơn nữa?

Tôi sẽ cho rằng đây là phần lớn của một máy chủ hoặc đám mây vì trên Desktop có nhiều tùy chọn hơn, nhưng từ bất kỳ ai sử dụng thiết bị đầu cuối rất nhiều, tôi hỏi:

Có trường hợp như vậy?



8
@Tim Trên thực tế visudocó thể sử dụng bất kỳ trình soạn thảo. Vì cấu hình mặc định của nó trên Ubuntu tôn trọng các biến EDITORVISUALmôi trường, bạn có thể chạy sudo env VISUAL=emacs visudocho emacs hoặc thậm chí gksudo env VISUAL=gedit visudocho trình soạn thảo đồ họa như Gedit. ( sudo -Hhoặc sudo -icó thể được sử dụng thay cho gksudo.) Tôi đề nghị envcách này vì VISUAL=emacs sudo visudosẽ không hoạt động ( sudođặt lại hầu hết môi trường) và sudo -EH có thể được coi là không phù hợp.
Eliah Kagan

3
vi là tùy chọn duy nhất ... khi vi là trình soạn thảo duy nhất được cài đặt mà bạn biết và bạn không muốn mất thời gian cài đặt trình soạn thảo khác. vi là lựa chọn tốt nhất khi vi là trình soạn thảo mà bạn biết / thích nhất trong số những trình soạn thảo có sẵn và bạn không muốn dành thời gian cài đặt một thứ bạn thích hơn. KHÔNG BAO GIỜ có trường hợp chỉ có một công cụ có thể giải quyết vấn đề; có thể có những lúc các lựa chọn bị hạn chế. Và một số người thực sự thích vi. (Không phải tôi. Tôi là một người khổng lồ Emacs. Mặc dù tôi có thể chịu đựng được nhiều biên tập viên.)
keshlam

3
cat? sed? Có thật không? vithực sự không phức tạp lắm và nếu bạn thực sự không thể bận tâm tìm hiểu nó, bạn chỉ phải nhớ hai chế độ (chế độ Bình thường và chế độ Chèn). Bạn di chuyển con trỏ bằng mũi tên (hoặc HJKL nếu không có), nhấn "i" để bắt đầu chỉnh sửa (chế độ chèn). Khi bạn đã hoàn tất, nhấn "Esc" để trở về chế độ bình thường. Nhập ": wq" để lưu và thoát (Viết + Thoát).
sleblanc

2
chỉ cần mút nó và học vi :) Nó không khó như lần đầu tiên xuất hiện và một khi bạn biết điều đó, bạn sẽ không bao giờ lãng phí thời gian để săn lùng các biên tập viên khác trên bất kỳ hệ thống mới nào bạn sử dụng.
JamesRyan

Câu trả lời:


32

Bên trong hệ sinh thái Ubuntu , tôi không nghĩ trường hợp này thậm chí có thể tồn tại , vì viít nhất sẽ là một vim-tiny, vốn đã là một trò chơi thực sự khác vimxa so với thực tế vi.

Trong bối cảnh các hệ thống nhúng bị giới hạn tài nguyên , thường không phải là Ubuntu, bạn có thể có vimột liên kết hóa ra busybox. Và không còn chỗ trống. Sau đó, vilà lựa chọn duy nhất.

Ngoài ra, tôi nghĩ rằng các tình huống trong đó vitùy chọn duy nhất không phổ biến lắm hiện nay, ngay cả ngoài thế giới Linux .

Nhưng có thể dễ dàng có những tình huống vilựa chọn duy nhất bạn có thể lên kế hoạch , tùy chọn duy nhất mà certaily sẽ tồn tại trong một số tình huống trong tương lai - có thể xảy ra trong phòng máy chủ quá lạnh của khách hàng, rất có thể.

Hãy tưởng tượng bạn được gọi bởi một khách hàng:

Khách hàng: Tôi cần sửa cấu hình này! Hiện nay!! Tôi không biết làm thế nào, nhưng tôi có thể cho bạn biết tập tin cấu hình ở đâu. Bạn có thể giúp tôi được không!?!

Bạn: Ok, loại hệ thống nào đang chạy trên?

Khách hàng: Ồ, cuối cùng là trên máy chủ, ahh ... nó đang chạy ... không thể nhớ, cuối cùng có thứ gì đó có "ix" hoặc mayeb với "ux" ...

Không có vấn đề, bây giờ, bạn biết sẽ có vi!


1
Cá nhân tôi đã làm việc trên một số hệ thống nhúng chỉ chứa vi làm trình soạn thảo văn bản, tôi tin rằng buildroot và yocto đều có nó như là trình soạn thảo duy nhất khi sử dụng các tùy chọn cấu hình tối thiểu. Phải thừa nhận rằng đây không phải là vấn đề trên Ubuntu, nhưng nếu bạn là một nhà phát triển nhúng thì đây có thể là một vấn đề thực sự. Tuy nhiên, bạn luôn có thể như OP cho biết sử dụng các công cụ dựa trên đường ống như sed, sort, grep và như vậy, tuy nhiên điều này có thể rất đau đớn.
Vality

Các trường hợp busybox thực sự là một trong những tốt. Điều khó chịu về nó là, tôi không nghĩ nó thậm chí là một vi đầy đủ (ít nhất nó đã không phải là một thập kỷ trước và tôi hy vọng họ đã không làm hỏng nó, ngay cả khi nó gây phiền nhiễu).
hyde

1
busybox vilà 4k dòng : curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc;)
Volker Siegel

17

Vi không bao giờ là lựa chọn duy nhất; bạn luôn có thể sử dụng edthay thế.


8
Trong Arch Linux, chẳng hạn, edkhông phải là một phần của base.
muru

@muru FWIW vimcũng không.
Sparhawk

4
@Sparhawk vilà.
muru

@muru À vâng, tất nhiên rồi. Tôi đã nhầm lẫn chính mình.
Sparhawk

edchỉ là một phần của standard^cài đặt. Nếu bạn minimalcài đặt, edkhông bao gồm.
Oli

13

Vâng, có một trường hợp bạn cần vitrình soạn thảo, hãy giả sử:

  • không có giao diện đồ họa
  • bạn đang ở trên một *nixhệ thống lạ
  • thiết bị đầu cuối của bạn trông như thế này:

nhập mô tả hình ảnh ở đây

  • bạn có đủ những kẻ như thế này:

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy không có bàn phím số . Với người già vi(và tôi có nghĩa là gốc truyền thốngvi , không vim, vim.tinyhoặc vim.basic) bạn có thể chỉnh sửa một tập tin với bàn phím này. Không có phím mũi tên ? Vâng, khi bạn đang ở chế độ lệnh bạn di chuyển thông qua các tập tin với h, j, kl, giống như một pro. hđã trái, jđã xuống, kđã lên và lđã đúng.


5
Tôi nghĩ rằng câu trả lời này thực sự không tệ (bàn phím giống như máy đánh chữ không phải là điều hoàn toàn không thể gặp phải), nhưng thực tế điều đó không có nghĩa là bạn cần viđặc biệt. Tất cả các trình soạn thảo văn bản cũ hơn đều có các tổ hợp phím "sao lưu" cho phép bạn làm việc mà không cần các phím mũi tên, v.v., mặc dù tôi dám khẳng định đó vilà trình soạn thảo duy nhất mà bạn sẽ không bỏ lỡ các phím mũi tên.
rẽ trái

Hơi lạc đề: Tôi không hiểu tại sao bạn lại cần một bàn phím số cho bất kỳ trình soạn thảo văn bản nào và dù sao thì các phím mũi tên cũng vô dụng trong Vim. : P
Doorknob

1
Này, đừng giảm giá cũ ed! Không cần những mánh lới quảng cáo "trực quan" này trên một hệ thống như thế! Chỉ cần thử sử dụng vim trên thiết bị đầu cuối giấy và xem cách bạn quản lý ... Nghiêm túc hơn, eddù sao cũng biết là hữu ích, đó là một lựa chọn hợp lý khi chỉnh sửa cần phải được viết kịch bản.
hyde

Làm thế nào để bạn chuyển sang chế độ lệnh bằng bàn phím đó (Tôi không thấy thoát; có một tổ hợp phím nào khác cho điều đó không?)
Foon

@Foon Có một phím thoát =) Đó là nơi thường có tab. Ở bên trái của Q -key.
hỗn loạn

6

Thực tế của vấn đề là, trong nhiều bản phân phối, các biên tập viên thích nanopicochỉ không chuẩn trong khi các gói khác, cụ thể vim-tinylà. Xem ở đây để biết danh sách gói ubfox-Minimal, vim-tinylà trình chỉnh sửa duy nhất . Theo câu trả lời này, có vẻ như đó cũng là trường hợp của máy chủ Ubuntu. Tôi biết đây là trường hợp của Debian, Fedora.

Điều đó đang được nói, cho rằng nếu bạn có nanotrên hệ thống của mình, tôi chưa thấy trường hợp nào bạn phải sử dụng vithay thế, nhưng, hãy trả lời câu trả lời của @ ROL, nếu bạn đang làm việc cho một khách hàng và không có truy cập root? apt-get install nanosẽ không giúp bạn nhiều điều tốt (nếu nó thậm chí có quyền truy cập vào internet bên ngoài!).


4

Có một số trường hợp vi(và ý tôi là tự nhiên vim.tinyvì đó là những gì chúng tôi gửi) có thể là trình soạn thảo tương tác duy nhất. Nếu chúng ta bỏ qua những con bướm và tia vũ trụ, thì đây dường như là những dịp rất có thể xảy ra:

  • Bạn chỉ đang sử dụng ubuntu-minimalgói meta cơ sở. Điều này phụ thuộc vào vim-tiny nhưng không có biên tập viên khác. Hiện tại tôi không thể tìm cách cài đặt Ubuntu mà không có standard^nhiệm vụ nhưng bạn có thể xóa nó sau khi cài đặt bằng:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Tôi có kinh nghiệm cá nhân nơi tôi đã được trao một hình ảnh hệ thống mà không standard^cài đặt tác vụ. Nếu tôi không có quyền truy cập mạng visẽ là lựa chọn duy nhất của tôi.

  • Chroot vào một môi trường chỉ được ánh xạ viqua

  • Tự tay gỡ bỏ tất cả các trình soạn thảo khác (và vô hiệu hóa các phương tiện để cài đặt lại chúng)

  • Tự tay phá vỡ vỏ để ngăn các biên tập viên được biết đến ngoại trừ viđược tung ra.

Một cài đặt thực sự tối thiểu sẽ là lý do rất có thể nhưng những thứ này khá hiếm ngày nay. Một số công ty lưu trữ VPS và đám mây sử dụng chúng (để tiết kiệm dung lượng ổ đĩa nhiều như mọi thứ khác) nhưng tôi sẽ đề nghị rằng chúng chắc chắn không phải là tiêu chuẩn.


Một câu trả lời tuyệt vời như mọi khi. Tôi thấy nó rất am hiểu.
Luis Alvarado

2

Trong trường hợp bạn không thể cài đặt emacs hoặc trong trường hợp bạn cần sửa đổi tệp cấu hình để cho phép bạn cài đặt emacs. :-p


Hoặc trong trường hợp khi bạn muốn sử dụng một trình soạn thảo ưu việt tốt hơn emacs. ( cue flamewar ): P
Doorknob

3
Chắc chắn, nếu bạn đang sử dụng Ubuntu thì bạn đã một hệ điều hành, vì vậy emacs sẽ là dư thừa: v
evilsoup

Này, trở lại tốt đẹp. :-p
Craig

2

Nhiều (hầu hết?) Cài đặt Busy-Box chỉ có vi.

Nó không phải là đặc trưng của Ubuntu, nhưng nó đúng với nhiều thiết bị nhúng.


2

Luôn có mèo, đầu, đuôi ... vì vậy tôi không chắc có hệ thống mà bạn không có bất kỳ sự thay thế nào, nhưng có thể tìm thấy các hệ thống không có lựa chọn nào tốt hơn ngay cả khi bạn thích emacs.

Ví dụ của tôi là một hệ thống tôi từng quản lý, nó rất chậm (hoặc dòng chậm và mất), khi điều hướng bằng phím con trỏ, nó thường đột ngột chuyển sang chèn và chèn rác vào tệp đã chỉnh sửa và sử dụng HJKL để di chuyển là lựa chọn đáng tin cậy duy nhất.


1
Và tất nhiên, đó là những con bướm già tốt !
leftaroundabout

2

Đây là trường hợp vim là lựa chọn duy nhất trong hệ sinh thái Ubuntu: Ubuntu Snappykhông đi kèm với bất kỳ trình soạn thảo văn bản nào ngoài vim-tiny. Có lẽ trong tương lai sẽ có một, nhưng không phải là 2015-16. Nếu bạn đang sử dụng Ubuntu Snappy qua bảng điều khiển nối tiếp hoặc ssh, tốt nhất bạn nên chuẩn bị sử dụng vim.


0

Tôi đã rơi vào tình huống một lần khi chỉ có linemode của vi hoạt động. Một cái gì đó phải làm với việc thực sự làm hỏng các định nghĩa thiết bị đầu cuối. Về cơ bản chỉ có vi trong linemode (điều này hoạt động như vi bình thường nếu bạn giả vờ rằng bạn có thiết bị đầu cuối 1 dòng), ví dụ và ed sẽ hoạt động vì định nghĩa thiết bị đầu cuối duy nhất là "câ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.