É possível no vim criar uma exibição dividida para uso da linha de comando?

11

Conheço a opção :!ls, mas gostaria de usar uma das interfaces divididas (depois de usada :sp) como uma janela de linha de comando. Isso é possível? Se for, como faço?

p1100i
fonte
3
Existem plugins e / ou patches para fazer isso. Mas, mais cedo ou mais tarde, você experimentará algumas peculiaridades. Minha sugestão é usar um terminal leve com todos os recursos ou screen / tmux.
Marco
vim8 tem modo terminal construído em .. ver aqui: superuser.com/a/1312655/658319
alpha_989

Respostas:

9

Ao contrário do Emacs, o Vim tenta ser um pouco mais mínimo quando se trata de trabalhar com o shell. Ele não tem uma opção para incluir o shell interativo em uma de suas guias ou buffers.

Embora haja soluções alternativas para isso. Assim como você, eu realmente gosto de ter uma bashjanela na mesma sessão do terminal em que o Vim está sendo executado. É super útil ao editar arquivos de origem. No meu caso, eu realmente gosto de ter o ambiente Ruby REPL em execução para testar as instruções antes de colocá-las nos arquivos de origem.

Eu uso o Tmux para realizar a janela dividida. No Tmux , crio uma janela dividida (a chave padrão é ctrl + b, "). Isso abrirá duas sessões de shell interativas, como uma janela dividida no Vim. Depois, eu executo o Vim em uma das sessões e estou pronto.

Você pode ver na figura abaixo que eu dividi a janela horizontalmente com bashem cima e Vim em baixo.

insira a descrição da imagem aqui

Eu também uso o Tmux para dar suporte à programação de pares com outras pessoas. Você pode ler mais sobre minha configuração no meu blog em http://jjasonclark.com/Remote-Pairing-with-SSH-and-Tmux-on-a-Mac .

Jason
fonte
7

Não tenho certeza se você estava procurando uma solução de tela GNU ou uma solução usando as divisões internas do Vim, mas se você estiver procurando pela última, isso funcionou para mim:

vim -O file_a.js file_b.js

Que a abre os dois arquivos com uma divisão vertical. Para uma regular (divisão horizontal), basta usar uma letra minúscula -o.

PS Ctrl+ w, wpara alternar entre os dois (acho uma boa maneira de diferenciar divisões de tela e divisões de vim).

JM Janzen
fonte
5
Embora isso não responda à pergunta original, ela respondeu à minha consulta de pesquisa do Google que me trouxe até aqui. :)
Mihai Alexandru Bîrsan
O mesmo - obrigado!
CaseyR
7

O Vim 8 possui o modo terminal incorporado.

Você pode digitar :terpara obter acesso ao terminal.

Para navegar pelos comandos no seu shell padrão, use j,k.

Você pode obter mais informações digitando :h terno VIM8.

Nota : seu VIM8 deve ter +terminalpara que isso funcione.

alpha_989
fonte
6

Você já tentou a tela ? Algum motivo que não funcionaria para você?

Alex Nye
fonte
3

Eu estava procurando isso por muito tempo e, tanto quanto posso dizer, nada de bom é realmente possível. Eu tentei muitos plugins / addons para vim, mas ninguém funcionou como eu queria.

Este aqui é bom: ConqueTerm

No entanto, tem alguma inconsistência com as cores. Experimente, talvez funcione para você.

rowman
fonte
Verifique este também: youtube.com/watch?v=5__I_cnxmPc&feature=related
rowman
1

Você pode usar o NeoVim, ele possui um modo de terminal semelhante ao emacs (embora seja muito novo) - isso permite que você o tenha em uma janela como qualquer outro buffer do vim

alcesleo
fonte