Как зафиксировать странную энергию, загрязняющую терминальное поведение на клавишах со стрелками, и на удаляют в режиме вставки?

Я предполагаю, что Вашей проблемой является файл, также имел пробелы на его имя. Я не могу воспроизвести Вашу ошибку без него.

$ touch "file" "user's file"
$ for i in *; do mv $i `echo $i | tr -d "'"`; done
mv: `file1' and `file1' are the same file
mv: target `file' is not a directory

Таким образом, причиной, которую это приводит к сбою, является второе сообщение: target 'file' is not a directory.

Когда Ваш для цикла видит файл с пространством, он выполняет это:

mv user's file users file

Таким образом, это думает, что Вы указываете три файла (user's, file, и users), и каталог для перемещения тех файлов в (file).

Надлежащее заключение в кавычки обоих должно решить Вашу непосредственную проблему

$ for i in ./*; do mv "$i" "$(echo "$i" | tr -d "'")"; done
3
18.07.2013, 11:29
2 ответа

Я сначала попробовал бы это:

:set nocompatible

Который отключит vi режим эмуляции, если он будет включен.

Если это решает проблему, добавьте это к своему ~/.vimrc

set nocompatible
3
27.01.2020, 21:23

Я использовал значение по умолчанию .vimrc:

cp /usr/share/vim/vimrc ~/.vimrc

Содержание:

set modelines=0     " CVE-2007-2438
set nocompatible    " Use Vim defaults instead of 100% vi compatibility
set backspace=2     " more powerful backspacing
au BufWrite /private/tmp/crontab.* set nowritebackup
au BufWrite /private/etc/pw.* set nowritebackup
0
27.01.2020, 21:23

Теги

Похожие вопросы