Thay đổi trình chỉnh sửa mặc định thành vim cho _ sudo systemctl chỉnh sửa [tệp đơn vị] _


17

[4.13.12-1-ARCH với gnome3 và gdm trên Xorg]

Tôi đã thiết lập env-vars VISUAL và EDITOR của mình vim. Tương tự, tôi đã thử SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR trong ~ / .bashrc của mình, nhưng không có kết quả.

Khi sửa đổi tệp đơn vị trong Arch (systemd) thông qua

 $ sudo systemctl edit _unit_ 

Tôi thấy mình đang nhìn chằm chằm vào nano. Cuộc sống quá ngắn ngủi và tôi muốn vimbằng mọi cách. Làm thế nào để tôi làm điều này ?

Câu trả lời:


13

Bạn đang đặt các biến cho người dùng của riêng bạn, nhưng đang chạy systemctllệnh dưới dạng root ( sudo). Do đó, các biến bạn đặt cho người dùng của mình không liên quan.

Để khắc phục điều này, bạn có thể (nhưng đi với 1):

  1. Chạy sudovới -Enó để xuất khẩu môi trường hiện tại:

    sudo -E systemctl edit _unit_
    
  2. Thêm biến (bạn chỉ cần SYSTEMD_EDITORđiều này) vào root ~/.profile:

    export SYSTEMD_EDITOR="/bin/vi" 
    

    Sau đó chạy với

    sudo -i systemctl edit _unit_ 
    

Cuối cùng, lưu ý rằng bạn cần chỉ định đường dẫn đầy đủ đến trình soạn thảo của mình, không chỉ tên của nó. Vì vậy, nó /bin/vivà không vim.


Tôi đã làm việc với sudo -E ...sau khi đã sửa đổi /root/.bashrc. Tuy nhiên, đã không nghĩ đến việc chạy sudo như đăng nhập shell ( sudo -i ...). Không phải là rất thỏa đáng khi bạn cần phải nhớ các cờ tương ứng, nhưng hey ... có những điều tồi tệ hơn, tôi đoán ... Vẫn (có thể đó là mối quan tâm), tôi xác nhận rằng đối với một số người trong chúng ta: SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITOR(là root) là đúng. Tất cả đường dẫn phụ thuộc vào cách bạn đã vimcài đặt pkg ở vị trí số 1. Thêm vào đó như tôi đã định nghĩa PATH cho root, vimlà đủ. Không chỉ có một cách để làm điều đó. Cảm ơn @terdon.
Cbhihe

1
@cbhihe ah, được rồi. Tôi đã cố gắng chỉ vimvà nó phàn nàn đó là lý do tại sao tôi đề cập đến nó. Và này, tôi là người dùng emacs :)
terdon

1
@Cbhihe tin tôi rằng đó không phải là một lựa chọn dễ dàng. Tôi thậm chí đã thử nó bằng cách sử dụng vim! Tôi phải mất ba ngày để đóng điều này.
terdon

20

Phương pháp đầu tiên, bạn có thể thêm dòng này vào ~/.bashrc:

export SYSTEMD_EDITOR=vim

Và sau đó sudo visudovà thêm dòng này:

Defaults  env_keep += "SYSTEMD_EDITOR"

Bắt đầu phiên bash mới để có hiệu lực, sau đó chạy sudo systemctl edit <foo>như bình thường.

Phương pháp thứ hai là sử dụng update-alternatives:

Cài đặt mong muốn của bạn editor, ví dụ vim.gtk3:

$ mà biên tập viên
biên tập viên là / usr / bin / biên tập viên
$ sudo update-thay thế - cài đặt "$ (trình soạn thảo)" trình soạn thảo "$ (mà vim.gtk3)" 15

Sau đó chọn mong muốn của bạn editor:

$ sudo update-alternatives --config editor
There are 7 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/vim.gtk3    50        auto mode
  1            /bin/ed             -100       manual mode
* 2            /bin/nano            40        manual mode
  3            /usr/bin/code        0         manual mode
  4            /usr/bin/gedit       5         manual mode
  5            /usr/bin/vim.basic   30        manual mode
  6            /usr/bin/vim.gtk3    50        manual mode
  7            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 6
update-alternatives: using /usr/bin/vim.gtk3 to provide /usr/bin/editor (editor) in manual mode

Phương pháp thứ ba là thiết lập trực tiếp EDITORthời gian chạy:

sudo EDITOR=vim systemctl edit <foo>

Ưu tiên là phương pháp đầu tiên> phương pháp thứ ba> phương pháp thứ hai .

Đừng cố thiết lập trình chỉnh sửa "GUI" như geditTại sao không gksu / gksudo hoặc khởi chạy một ứng dụng đồ họa với sudo hoạt động với Wayland? Gedit sử dụng 100% CPU trong khi chỉnh sửa tệp


1
Cảm ơn 林果 皞, nhưng tôi thực sự có ý đó vim, không phải gedit.
Cbhihe

@Cbhihe geditchỉ là một ví dụ để chứng minh rằng ngay cả trình soạn thảo gui đang hoạt động, tất nhiên bạn có thể sử dụng vimvới câu trả lời này.
林果

1
林 さ, bạn nói đúng. Trong thực tế, tôi đã triển khai giải pháp năm bằng cách chỉnh sửa tệp sudoers bằng sudo visudo... Tôi đã quá nhanh chóng trong việc chấp nhận phản hồi đầu tiên. Những gì tôi đang tìm kiếm chính xác là sửa đổi các /etc/suddoerstập tin như bạn đề xuất. Cảm ơn bạn và xin lỗi vì đã không chọn giải pháp năm. Lỗi của tôi.
Cbhihe

[CẬP NHẬT] Tôi đã chỉnh sửa câu trả lời của mình để thêm lời khuyên không được đặt gedit.
林果

0

Tôi không kiên nhẫn với Nano và thích giết một con muỗi bằng súng thần công.

Tôi xóa Nano và đặt một liên kết tượng trưng đến vim ở vị trí của nó.

Làm xong.

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.