Проблема с настройкой VIM grep (получение FINDSTR: не удается открыть System32 при использовании findstr и не удается понять, как установить внешний grep)

Я использую Gvim 7.4 в Windows 7 x64. Когда я ищу что-либо, я получаю сообщение об ошибке:

FINDSTR: Cannot open System32

Я просмотрел его и нашел этот вопрос. Думаю, у меня другая ситуация. Я не знаю, что вызывает ошибку. Я не хочу использовать внутренний grep в vim. Мне нужен findstr или просто обычный grep (ответ не касается настройки внешнего grep, он просто упомянул, что это выполнимо). Из того, что я понял (поправьте меня, если я ошибаюсь), когда я делаю grep в vim, он находит что бы это ни было, инструмент поиска моей ОС и использует его вместо этого. Итак, мне должно быть хорошо, если я использую findstr, почему он не работает?

В конце концов я отказался от findstr и установил UnxUtils в C:\Linux. Но я не мог понять, как установить внешний инструмент grepping для использования C:\Linux\grep.exe - я знаю, что это связано с grepprg, но я не уверен, как это сделать, я попытался установить его напрямую grepprg="C:/Linux/grep.exe" (или grep.exe -n, если на то пошло - с .exe и без него), но это не сработало, каждый раз я ищу что-то вроде grep someString . it says someString is not recognized as an internal or external command. Документ очень расплывчатый по этому поводу. Как я могу установить внешний grep vim на мой установленный?

Спасибо.


РЕДАКТИРОВАТЬ:

Я также попытался добавить grep.exe в один из моих $PATH каталогов (system32) - и сделал set grepprg=grep\ -nH, но теперь, когда я grep, он говорит grep is not recognized as an internal or external command


person vexe    schedule 20.08.2014    source источник
comment
Привет. Попробуйте что-то вроде следующего, которое у меня работает: let Grep_Path = 'C: \ gnuwin32 \ bin \ grep.exe': let Fgrep_Path = 'C: \ gnuwin32 \ bin \ fgrep.exe': let Egrep_Path = 'C: \ gnuwin32 \ bin \ egrep.exe ': пусть Agrep_Path =' C: \ gnuwin32 \ bin \ agreementp.exe '   -  person Steve    schedule 21.08.2014


Ответы (2)


Похоже, что ваш 64-битный каталог System32 - это место, где живет findstr, но если вы используете 32-битный Vim, он на самом деле не увидит этот каталог. Вместо этого он видит каталог c: \ windows \ Syswow64 из-за функции Windows. Но вы, вероятно, можете заставить Vim искать "настоящую" папку System32, добавив ее к своему пути в вашем .vimrc:

let $PATH.=';C:\Windows\Sysnative'
person Ben    schedule 21.08.2014
comment
Спасибо, вы указали мне правильное место. Я добавил '; c: \ windows \ Syswow64', и все. Но странно, что findstr.exe был и в system32, и в Syswow64 ... system32 был добавлен в $ PATH, хм ... - person vexe; 21.08.2014

Поэтому мне пришлось скопировать grep.exe в свой Vim installation/Vim74 вместоC:/Windows/system32, а также сделать set grepprg=grep\ -nH

person vexe    schedule 20.08.2014