Como posso usar aliases em comandos?

3

Eu criei aliases no meu .bashrc para vários caminhos longos usados com frequência, mas parece que não consigo usá-los dentro de vim ou com comandos como find ou grep .
Por exemplo, o seguinte:
db
em cli faz cd /some/very/long/path/db
Mas no vim isso:
:e db/file.java
ou na linha de comando: grep -r string db não funciona.
Como isso é consertado?

    
por Cratylus 01.07.2013 / 23:29

2 respostas

4

Você pode definir uma variável de ambiente para esse diretório.

# Making the variable name consist entirely of capital letters makes the
# variable less likely to conflict with other variables in scripts. You can
# make the variable name consist of lowercase letters but you may run
# into problems. 
export DB=/some/very/long/path/db

Então você pode usar a variável exportada no Vim como tal:

:e $DB/file.java

e no seu shell como tal:

grep -r string $DB

As facilidades de substituição de variáveis do Vim e do bash são totalmente independentes umas das outras. O Vim apenas substitui as variáveis do ambiente de maneira semelhante ao bash (e a muitas outras conchas).

    
por 02.07.2013 / 00:15
1

Os aliases permitem que você dê um nome curto para um comando e alguns argumentos. Eles são expandidos somente onde um comando é esperado. Você não pode usá-los para abreviar o caminho para um arquivo.

Além disso, .bashrc é lido apenas por shells interativos, então nada que você definir lá estará disponível em um comando digitado em Vim.

Se você quiser ter um atalho para um arquivo ou diretório, crie um link simbólico para ele.

ln -s /some/very/long/path/db ~/db
grep -r string ~/db
vim ~/db/file.java

Você pode definir variáveis de ambiente para abreviar qualquer string. As definições das variáveis de ambiente entram em ~/.profile . Nem todo programa os expande, mas o Vim o faz quando você abre um arquivo com :e (entre outras coisas).

    
por 02.07.2013 / 01:05