AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 408413
Accepted
Cbhihe
Cbhihe
Asked: 2017-12-03 10:11:38 +0800 CST2017-12-03 10:11:38 +0800 CST 2017-12-03 10:11:38 +0800 CST

Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _

  • 772

[4.13.12-1-ARCH com gnome3 e gdm no Xorg]

Eu já defini meus env-vars VISUAL e EDITOR para vim. Da mesma forma, tentei SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR em meu ~/.bashrc, sem sucesso.

Ao modificar arquivos de unidade no Arch (systemd) via

 $ sudo systemctl edit _unit_ 

Eu me pego encarando nano. A vida é muito curta e eu quero vimpor todos os meios. Como eu faço isso ?

systemd vim
  • 4 4 respostas
  • 28375 Views

4 respostas

  • Voted
  1. Best Answer
    林果皞
    2017-12-03T10:40:46+08:002017-12-03T10:40:46+08:00

    Primeiro método, você pode adicionar esta linha a ~/.bashrc:

    export SYSTEMD_EDITOR=vim
    

    E então sudo visudoe adicione esta linha:

    Defaults  env_keep += "SYSTEMD_EDITOR"
    

    Inicie uma nova sessão bash para entrar em vigor e, em seguida, execute sudo systemctl edit <foo>como de costume.

    O segundo método é usar update-alternatives:

    Instale o desejado editor, por exemplo vim.gtk3:

    $ qual editor
    editor é /usr/bin/editor
    $ sudo update-alternatives --install "$(qual editor)" editor "$(qual vim.gtk3)" 15
    

    Então escolha o desejado 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
    

    O terceiro método é definir diretamente o EDITORtempo de execução:

    sudo EDITOR=vim systemctl edit <foo>
    

    A precedência é primeiro método > terceiro método > segundo método .

    Não tente definir o editor "GUI" como geditporque não gksu/gksudo ou iniciar um aplicativo gráfico com sudo funciona com Wayland? e o Gedit usa 100% da CPU ao editar arquivos

    • 62
  2. terdon
    2017-12-03T10:20:59+08:002017-12-03T10:20:59+08:00

    Você está configurando as variáveis ​​para seu próprio usuário, mas está executando o systemctlcomando como root ( sudo). Portanto, as variáveis ​​que você definiu para seu usuário são irrelevantes.

    Para corrigir isso, você pode (mas vá com 1):

    1. Execute sudocom -Epara que ele exporte o ambiente atual:

      sudo -E systemctl edit _unit_
      
    2. Adicione a variável (você só precisa SYSTEMD_EDITORpara isso) ao root ~/.profile:

      export SYSTEMD_EDITOR="/bin/vi" 
      

      Então corra com

      sudo -i systemctl edit _unit_ 
      

    Por fim, observe que você precisa especificar o caminho completo para o seu editor, não apenas o nome. Então é /bin/vie não vim.

    • 23
  3. Tom Hale
    2020-01-26T00:40:10+08:002020-01-26T00:40:10+08:00

    Eu uso um alias de shell:

    sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
    

    Depois é só:

    sc edit service-name
    

    Também é útil para evitar digitar 7 dos 9 caracteres systemctlem casos como restart, etc.

    • 6
  4. Tanath
    2020-08-25T16:58:40+08:002020-08-25T16:58:40+08:00

    As únicas maneiras que funcionaram para mim são:

    • Um shell raiz ( suou sudo -i), configurando SYSTEMD_EDITOR=/usr/bin/vim, entãosystemctl edit <unit>
    • Configuração SYSTEMD_EDITOR, entãosudo -E systemctl edit <unit>
    • sudo SYSTEMD_EDITOR=/usr/bin/vim systemctl edit <unit>

    Tentei definir EDITORe para bash VISUALe SYSTEMD_EDITORzsh, para usuário e root, mas só funcionou a partir de um shell de root, definindo a variável após sudo, ou usando sudo com -E.

    Também editei sudoers ( sudo visudo) para adicionar:
    Defaults env_keep += "SYSTEMD_EDITOR"
    Ainda assim, descobri que a variável não estava listada sudo systemctl show-environment, embora sudo echo $SYSTEMD_EDITORmostrasse o vim.

    Eu configurei a variável com:
    sudo systemctl set-environment SYSTEMD_EDITOR=/usr/bin/vim
    E confirmei com sudo systemctl show-environment.

    Mesmo depois disso, as únicas maneiras que funcionam para mim são as listadas no topo.

    • 0

relate perguntas

  • systemd: como posso executar um script no início de um serviço, sem editar a definição do serviço

  • Use o suporte de watchdog do systemd para reiniciar o aplicativo

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve