Невозможно присвоить имя файла переменной среды внутри vim - PullRequest
2 голосов
/ 08 апреля 2019

Наконец, я хочу скомпилировать мой исходный код с помощью gcc, используя vimux

(предположим, имя файла - test.c)

До vimux я делал

:!gcc % -o test

После установки vimux я делаю

nmap <leader>z :let $file_name = expand('%:t:r')<cr>:let $full_file_name = %<cr>:call VimuxRunCommand("gcc $full_file_name -o $file_name")<cr>

Но у меня ошибка

Неверное выражение:%

Я также пытался сделать это с помощью переменной vim, потому что я думал, что проблема с областью действия

1 Ответ

0 голосов
/ 08 апреля 2019

Как сказал @JonathanLeffler, make лучше, но если вы действительно хотите продолжить работу с gcc, вам следует:

  • Расширить также $full_file_name, а не только file_name
  • Используйте shellescape, вы не хотите, чтобы пробелы в именах файлов были проблемой

Ваш код должен выглядеть примерно так:

nmap <leader>z :let $file_name = shellescape(expand('%:t:r'))<cr>:let $full_file_name = shellescape(expand('%:p'))<cr>:call VimuxRunCommand("gcc " . $full_file_name . " -o " . $file_name)<cr>

* * * * * * * * * %:p потому что, я думаю, вам нужно имя файла с полным путем.

...