오래된 VIM 사용자로서 저는 처음부터 이 기능에 매료되었습니다. 특히 간단한 정규식 대체 기능으로 작업 속도가 매우 빨라졌기 때문에 VIM에 이러한 기능이 있을 것이라고는 전혀 예상하지 못했습니다. 하지만 대체 뭐랄까, 어쩌면 제가 뭔가 새로운 것을 간과하고 있는 것일 수도 있습니다.
vim
화면 크기에 맞게 n열 분할 모드에서 많은 수의 파일(예: 프로젝트의 모든 cpp/h 소스 파일)을 다시 열 때(아래 bash 명령/별칭 참조) 다시 열 수 있는 방법을 알고 계십니까? 열기/선택 표시되는 버퍼에서 처음 n개 파일로 재설정되는 대신 고정/활성 버퍼가 반환되었습니까? 이는 열린 파일의 상태를 저장하여 IDE와 다소 비슷합니다.
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
alias vimcpp='find . \( -name '\''*.cpp'\'' -o -name '\''*.cc'\'' -o -name '\''*.cxx'\'' -o -name '\''*.c'\'' -o -name '\''*.hpp'\'' -o -name '\''*.hh'\'' -o -name '\''*.hxx'\'' -o -name '\''*.h'\'' \) -exec vim -O$(( ( ( $COLUMNS - 1 ) / 80 > 0 ) ? ( ( $COLUMNS - 1 ) / 80 ) : 1 )) \{} \+'
답변1
이를 달성하려면 vim 세션을 사용할 수 있습니다. 빨리 달려:
:mksession mysession.vim
그리고 "mysession.vim"이라는 파일이 현재 디렉터리에 생성됩니다. 다음에 vim을 열면 다음을 수행할 수 있습니다:
:source mysession.vim
(또는 무엇이든 이름을 지정하면) 세션 파일을 생성했을 때 있던 위치로 돌아갈 수 있습니다(모든 분할이 거기에 있을 것입니다).
~에서돕다:
This is introduced in sections 21.4 and 21.5 of the user manual.
:mks[ession][!] [file] Write a Vim script that restores the current editing
session.
When [!] is included an existing file is overwritten.
When [file] is omitted "Session.vim" is used.
The resulting file, when executed with a ":source" command:
1. Restores global mappings and options, if 'sessionoptions' contains
"options". Script-local mappings will not be written.
2. Restores global variables that start with an uppercase letter and contain
at least one lowercase letter, if 'sessionoptions' contains "globals".
3. Closes all windows in the current tab page, except the current one; closes
all tab pages except the current one (this results in currently loaded
buffers to be unloaded, some may become hidden if 'hidden' is set or
otherwise specified); wipes out the current buffer, if it is empty
and unnamed.
4. Restores the current directory if 'sessionoptions' contains "curdir", or
sets the current directory to where the Session file is if 'sessionoptions'
contains "sesdir".
5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos".
6. Restores screen size, if 'sessionoptions' contains "resize".
7. Reloads the buffer list, with the last cursor positions. If
'sessionoptions' contains "buffers" then all buffers are restored,
including hidden and unloaded buffers. Otherwise only buffers in windows
are restored.
8. Restores all windows with the same layout. If 'sessionoptions' contains
"help", help windows are restored. If 'sessionoptions' contains "blank",
windows editing a buffer without a name will be restored.
If 'sessionoptions' contains "winsize" and no (help/blank) windows were
left out, the window sizes are restored (relative to the screen size).
Otherwise, the windows are just given sensible sizes.
9. Restores the Views for all the windows, as with |:mkview|. But
'sessionoptions' is used instead of 'viewoptions'.
10. If a file exists with the same name as the Session file, but ending in
"x.vim" (for eXtra), executes that as well. You can use *x.vim files to
specify additional settings and actions associated with a given Session,
such as creating menu items in the GUI version.
아직 하나 있어요Tpope의 플러그인세션 동작을 조정합니다.