Файл псевдонима не работает в Bash на WSL (Opensuse Leap 42.3)

608
Nathan Mills

Мой файл псевдонима настроен так же, как в Bash в WSL:

alias gvim='/mnt/d/Vim/vim81/gvim.exe' alias vim='/mnt/d/Vim/vim81/vim.exe' alias pngcrush='/mnt/c/Users/nathan/Downloads/pngcrush_1_8_11_w64.exe -reduce -brute -ow' 

но когда я пытаюсь запустить gvim или vim в Bash, я получаю эту ошибку:

:No such file or directorym.exe (Gvim)

`: Нет такого файла или directory.exe '(vim)

Однако псевдоним pngcrush работает правильно. Однако по какой-то странной причине псевдонимы, определенные в моем файле ~ / .alias, заменяют первую «a» в псевдониме на одинарную кавычку, а завершающая одинарная кавычка отсутствует, когда я запускаю команду alias в bash без аргументов.

Кто-нибудь знает, почему исполняемые файлы gvim и vim не найдены правильно? Если я ввожу путь к .exe в bash напрямую, он работает, но эти два псевдонима не работают

Bash версия:

> bash --version GNU bash, version 4.3.42(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>  This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 

Версия OpenSUSE:

> cat /etc/*release NAME="openSUSE Leap" VERSION="42.3" ID=opensuse ID_LIKE="suse" VERSION_ID="42.3" PRETTY_NAME="openSUSE Leap 42.3" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:leap:42.3" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/" openSUSE 42.3 (x86_64) VERSION = 42.3 CODENAME = Malachite # /etc/SuSE-release is deprecated and will be removed in the future, use /etc/os-release instead 

Все мои псевдонимы bash ниже:

>alias alias +='pushd .' alias -='popd' alias ..='cd ..' alias ...='cd ../..' alias beep='echo -en "\007"' alias cd..='cd ..' alias dir='ls -l' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' 'lias gvim='/mnt/d/Vim/vim81/gvim.exe alias l='ls -alF' alias la='ls -la' alias ll='ls -l' alias ls='_ls' alias ls-l='ls -l' alias md='mkdir -p' alias o='less' 'lias pngcrush='/mnt/c/Users/nathan/Downloads/pngcrush_1_8_11_w64.exe -reduce -brute -ow alias rd='rmdir' alias rehash='hash -r' alias unmount='echo "Error: Try the command: umount" 1>&2; false' 'lias vim='/mnt/d/Vim/vim81/vim.exe alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi' 

Microsoft Windows 10 Home 10.0.17134

1
Проверьте, есть ли в вашем файле псевдонимов окончания строк CRLF, например, с помощью `cat -v [et]` или `sed -nl` (ell). dave_thompson_085 6 лет назад 0
Измените псевдоним на другое имя, например: `alias wvim = '/ mnt / d / Vim / vim81 / vim.exe'`. Псевдоним vim может конфликтовать с путем Windows и путем Linux. +1 за этот вопрос форматирования. Biswapriyo 6 лет назад 0
Я попытался `cat -v ~ / .alias`, и каждая строка заканчивается ^ M. Означает ли это, что мне нужно запустить на нем dos2unix? Nathan Mills 6 лет назад 0
Хорошо, попробовал `dos2unix` на файле псевдонимов, и псевдоним gvim, похоже, работает, но псевдоним vim просто зависает, если я запускаю его из bash, используя псевдоним или путь к exe, но работает нормально, когда я запускаю этот exe из Cortana. Думаю, я удалю этот конкретный псевдоним и оставлю два других. Спасибо за помощь, Дэйв и Biswapriyo. Nathan Mills 6 лет назад 0

0 ответов на вопрос