В некоторых файлах vim переходит к последнему месту моего последнего редактирования. В других файлах этого не происходит
Я только что обновил Ubuntu 14.04.5 LTS Software Updater
,
После перезапуска видимо что-то изменилось на vim
:
Ранее при открытии файла с vim
, затем :q
и затем открыв его снова, он автоматически перешел к последней строке, которую я читал.
После этого обновления, когда я открываю файлы, уже сохраненные на компьютере, :q
и открывая их снова, они переходят на строку, которую я читал минуту назад, но другие файлы этого не делают, и открываются в строке 1.
Я ничего не модифицировал
мой /etc/vim/vimrc
Раскомментировал эти строки:
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
И мой ~/.vimrc
имеет только одну строку:
syntax on
(Все файлы являются обычными текстовыми файлами)
РЕДАКТИРОВАТЬ:
Проблемные файлы находятся в пути к папке ~/work/(+1000 символов папок и подпапок)/file.tex
Файлы в ~/work/folder1 не представляют такой проблемы.
Длина пути имеет какое-то отношение?
Отвечая на вопросы и предложения @EliahKagan:
Пусть ~/work/folder1/test_1.tex
быть файлом, в котором "переход к последнему месту" работает хорошо.
Пусть ~/work/folder2/very-long-path-of-folders-and-subfolders--around_1000 characters_of_folders_and_subfolders/test_2.tex
быть файл (ы), где "переход к последнему месту" не работает.
1) Можете ли вы добавить вывод ls -l ~/.viminfo
на ваш вопрос?
david@so1:~$ ls -l ~/.viminfo
-rw------- 1 david david 330206 Jul 9 22:08 /home/david/.viminfo
2) Файлы, для которых у вас нет проблемных файлов, которые вы обычно редактируете, запустив vim
как корень?
Нет, я запускаю их как пользователь:
david@so1:~$ vi ~/work/folder1/test_1.tex
3) Каков выход file /etc/alternatives/vim
david@so1:~/work/folder1$ file /etc/alternatives/vim
/etc/alternatives/vim: symbolic link to `/usr/bin/vim.gtk3'
4) Знаете ли вы, какие пакеты Software Updater установлены, обновлены или удалены? /var/log/apt/history.log
david@so1:~/work/folder1$ /var/log/apt/history.log
bash: /var/log/apt/history.log: Permission denied
И в качестве root
:
david@so1:~/work/folder1$ sudo su
root@so1:/home/david/work/folder1# /var/log/apt/history.log
bash: /var/log/apt/history.log: Permission denied
Если я открою /var/log/apt/history.log
файл:
david@so1:~/work/folder1$ vim /var/log/apt/history.log
Я вижу следующее:
Start-Date: 2017-07-03 22:05:01
Commandline: apt-get install pandoc
Install: pandoc:amd64 (1.12.2.1-1build2), pandoc-data:amd64 (1.12.2.1-1build2, automatic)
End-Date: 2017-07-03 22:05:04
Start-Date: 2017-07-09 18:54:46
Commandline: aptdaemon role='role-commit-packages' sender=':1.682'
Install: linux-headers-4.4.0-83-generic:amd64 (4.4.0-83.106~14.04.1), linux-image-4.4.0-83-generic:amd64 (4.4.0-83.106~14.04.1), linux-headers-4.4.0-83:amd64 (4.4.0-83.106~14.04.1), linux-signed-image-4.4.0-83-generic:amd64 (4.4.0-83.106~14.04.1), linux-image-extra-4.4.0-83-generic:amd64 (4.4.0-83.106~14.04.1)
5) Я заметил очень интересную вещь:
david@so1:~$ sudo su
[sudo] password for david:
root@so1:/home/david# cd work/folder1/
root@so1:/home/david/work/folder1# ls
test_1.tex
root@so1:/home/david/work/folder1# vim test_1.tex
и при открытии файла можно переместить курсор туда, куда вы укажете и щелкнуть.
Однако при открытии файла как user
:
root@so1:/home/david/work/folder1# exit
exit
david@so1:~$ cd work/folder1/
david@so1:~/work/folder1$ ls
test_1.tex
david@so1:~/work/folder1$ vi test_1.tex
курсор "укажи и щелкни" не работает (на самом деле я предпочитаю его таким образом, поэтому я бы предпочел не изменять его).
Если я сейчас открою проблемный файл как root
:
root@so1:/home/david/work/folder2/very-long-path-of-folders-and-subfolders--around_1000_characters_of_folders_and_subfolders# vi test_2.tex
У меня проблема с "переходом к последней позиции".
6) Это тоже еще интереснее:
Если я скопирую файл:
david@so1:~/work/folder2/very-long-path-of-folders-and-subfolders--around_1000_characters_of_folders_and_subfolders$ cp test_2.tex ~/Documents/
а затем откройте его:
david@so1:~/Documents$ vi test_2.tex
Тогда "переход к последней позиции" работает...
Где может быть проблема тогда?
Отвечая на вопросы / предложения @muru:
Если я сделаю:
david@so1:~/work/folder2/very-long-path-of-folders-and-subfolders--around_1000_characters_of_folders_and_subfolders$ vim test_2.tex
и я делаю :scriptnames
Я получаю следующее:
1: /usr/share/vim/vimrc
2: /usr/share/vim/vim80/debian.vim
3: ~/.vimrc
4: /usr/share/vim/vim80/syntax/syntax.vim
5: /usr/share/vim/vim80/syntax/synload.vim
6: /usr/share/vim/vim80/syntax/syncolor.vim
7: /usr/share/vim/vim80/filetype.vim
8: /usr/share/vim/vim80/plugin/getscriptPlugin.vim
9: /usr/share/vim/vim80/plugin/gzip.vim
10: /usr/share/vim/vim80/plugin/logiPat.vim
11: /usr/share/vim/vim80/plugin/manpager.vim
12: /usr/share/vim/vim80/plugin/matchparen.vim
13: /usr/share/vim/vim80/plugin/netrwPlugin.vim
14: /usr/share/vim/vim80/plugin/rrhelper.vim
15: /usr/share/vim/vim80/plugin/spellfile.vim
16: /usr/share/vim/vim80/plugin/tarPlugin.vim
17: /usr/share/vim/vim80/plugin/tohtml.vim
18: /usr/share/vim/vim80/plugin/vimballPlugin.vim
19: /usr/share/vim/vim80/plugin/zipPlugin.vim
20: /usr/share/vim/vim80/syntax/tex.vim
Результат :autocmd
это: http://paste.ubuntu.com/25060281/
(Поскольку вывод этой команды очень длинный, я не мог опубликовать ее прямо здесь)
Новое обновление:
При беге ipython
в этой проблемной папке я получаю это сообщение об ошибке:
david@so1:~/work/folder2/very-long-path-of-folders-and-subfolders--around_1000_characters_of_folders_and_subfolders$ ipython
[TerminalIPythonApp] ERROR | Current working directory doesn't exist.
в отличие от ожидаемого результата в любой другой папке:
david@so1:~/home/david/work/folder1$ ipython
Python 2.7.11 |Anaconda 4.0.0 (64-bit)| (default, Dec 6 2015, 18:08:32)
Type "copyright", "credits" or "license" for more information.
IPython 4.1.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]:
Итак, что-то должно происходить в этой проблемной папке