Как узнать, какой файл в настоящее время открывается в энергии?

Когда Вы пишете в канал, другой конец которого был закрыт, Вы обычно получаете сигнал SIGPIPE и умираете. Однако, если Вы принимаете решение проигнорировать тот сигнал, как svn делает, затем вместо этого write возвраты с -1 и errno набор к EPIPE чей английский перевод "Повреждается канал". И svn принимает решение отобразить то сообщение об ошибке, когда ему не удается записать что-то в его стандартный вывод.

head завершается после того, как это записало 10 строк из своего входа и в результате закрывает канал. svn не сможет записать больше в тот канал. Большинство приложений затем умирает тихо как поведение по умолчанию, когда они не игнорируют SIGPIPE. svn по некоторым причинам (возможно, потому что это должно сделать дополнительные вещи прежде, чем умереть) принимает решение проигнорировать SIGPIPE и решить, что это не может больше писать в канал путем проверки ошибочного состояния write к каналу.

Вы получаете ту же ошибку с:

bash -c 'trap "" PIPE; while echo foo; do :;done' | head

См.:

strace -e write seq 10000 | head

(на Linux) для наблюдения то, чем состоит в том поведение по умолчанию, когда Вы не игнорируете SIGPIPE.

62
12.12.2013, 19:47
9 ответов

В дополнение к ответу uprego можно нажать Ctrl+G (в нормальном режиме) для получения названия текущего буфера, а также общего количества строк в нем и текущей позиции в нем.

Обновление

Согласно комментарию rxdazn, можно нажать 1 перед Ctrl+G для получения полного пути к файлу. При нажатии 2 Вы получаете полный путь к файлу и буферное число, которое Вы в настоящее время имеете открытый (полезный при открытии нескольких файлов с vim).

78
27.01.2020, 19:32
  • 1
    Как много энергии управляет, чтобы это также относилось less команда, которую я использую при просмотре файлов в противоположность редактированию. –  jmathew 12.12.2013, 23:56
  • 2
    также, нажатие 1 перед Ctrl+G дает Вам полный путь –  rxdazn 13.12.2013, 03:57

Когда в vim Я всегда использую :ls команда.

Пример

:ls
  1 %a   "blah.txt"                         line 1

Где blah.txt имя файла.

23
27.01.2020, 19:32
:f

дает название файла, в настоящее время открываются.

22
27.01.2020, 19:32
  • 1
    блестящий и очень минималистский –  amphibient 18.12.2013, 18:51

Когда vim не назван со многими args, :args полезно.

7
27.01.2020, 19:32
  • 1
    Другая проблема с этим состоит в том, что, если файл был открыт после того, как энергия была запущена, это не будет перечислено. –  Patrick 12.12.2013, 19:57

Если у Вас может быть конфигурационный файл энергии по умолчанию, можно добавить a statusline всегда иметь детали файла в наличии. Я понимаю, что, если Вы постоянно - дистанционная работа в различные серверы, это не будет большим количеством справки. Вот мой немного сложный, который вытягивают от моего .vimrc.

" %F(Full file path)
" %m(Shows + if modified - if not modifiable)
" %r(Shows RO if readonly)
" %<(Truncate here if necessary)
" \ (Separator)
" %=(Right align)
" %l(Line number)
" %v(Column number)
" %L(Total number of lines)
" %p(How far in file we are percentage wise)
" %%(Percent sign)
set statusline=%F%m%r%<\ %=%l,%v\ [%L]\ %p%%

" Change the highlighting so it stands out
hi statusline ctermbg=white ctermfg=black

" Make sure it always shows
set laststatus=2

И это похоже на это в MacVim (но работает в терминалах также). enter image description here

Поскольку всегда можно сделать :help statusline получить еще некоторые опции и детали. И Vim Изучения контроля Твердый путь ch 17 к хорошему объяснению statusline.

4
27.01.2020, 19:32
  • 1
    я всегда использую statusline также. +1 –  Rob 13.12.2013, 17:46

Существует также :echo @%, который дает Вам название файла относительно текущего каталога.

1
27.01.2020, 19:32

Там бесчисленные способы получить этот вид информации, но если Вы хотите что-то так, чтобы Вы только нажали клавишу и имя файла, будут отображены, затем вставляют следующее в Ваш ~/.vimrc:

map <F4> <ESC>:file<CR>

Это говорит,

bind the `F4' key to the following sequence: Escape-key, :file, Carriage-Return (enter-key)

И file команда, как, вероятно, очевидно, возвращает название текущего файла наряду с другой информацией.

Вы могли также установить строку состояния так, чтобы Вы ничего не должны были даже делать кроме взгляда.

Для хранения строки состояния всегда вставляют следующее в Ваш ~/.vimrc:

set laststatus=2

Это говорит ViM всегда отображать строку состояния, другие опции 0, для никогда, и 1 для только, когда у Вас есть два или больше окна, открытые в ViM.

1
27.01.2020, 19:32

Я обычно просто ввожу :e и это показывает мне полный путь к файлу и количество строк и символов также.

Протест: это вновь открыло файл от диска по существу, таким образом, является самым полезным, когда файл уже сохранен.

:help :e говорит:

                          *:e* *:edit*
Edit the current file.  This is useful to re-edit the
current file, when it has been changed outside of Vim.
This fails when changes have been made to the current
buffer and 'autowriteall' isn't set or the file can't
be written.
1
27.01.2020, 19:32

Я мой vimrc у меня есть это отображение

nnoremap <leader>pfn :echo expand('%:p')<CR>

Таким образом, если я ввожу ,pfn, или "печатают имя файла", это echos весь путь к файлу.

1
27.01.2020, 19:32

Теги

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