-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgv.cmd
55 lines (47 loc) · 1.71 KB
/
gv.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@echo off
setlocal EnableDelayedExpansion
setlocal EnableExtensions
REM private build works with latest vim 8.1, not latest vim 8.2
REM https://github.com/vim/vim-win32-installer/releases/tag/v8.1.2424
SET MYGVIMPATH=C:\Progra~1\Vim\vim81\gvim.exe
SET GVIMSINGLEINSTANCE=-p --remote-tab-silent
SET ENABLE_SCROLL_ANIMATION=1
SET paramLine=%*
SET normalizeParamLine=%paramLine:"=%
REM ONE tricky stuff for Set ENV=%%i, don't leave any spaces around =
for /F "tokens=1,2,3 delims=:? " %%i in ("!normalizeParamLine!") do (
set GVFileName=%%i
set GVLineNumber=%%j
set EndMarker=%%k
)
if not "!EndMarker!" EQU "" (
REM re-split by ?, since driver latter is followed by :
for /F "tokens=1,2,3 delims=? " %%i in ("!normalizeParamLine!") do (
set GVFileName=%%i
set GVLineNumber=%%j
set EndMarker=%%k
)
)
set /a RealLineNumber=0
set /a RealColNumber=0
if "%EndMarker%" EQU "" (
if not "%GVLineNumber%" EQU "" (
if not "!GVLineNumber:~0,1!" EQU "\" (
if !GVLineNumber! GTR 1000000 (
REM need %% to represent mod?
set /a RealLineNumber=!GVLineNumber! %% 1000000
set /a RealColNumber=!GVLineNumber! / 1000000
REM location of +normal command matters, need to be immediate before source file?
start !MYGVIMPATH! !GVIMSINGLEINSTANCE! "+cal cursor(!RealLineNumber!, !RealColNumber!)" %GVFileName%
) else (
start !MYGVIMPATH! !GVIMSINGLEINSTANCE! +%GVLineNumber% %GVFileName%
)
goto :EOF
)
)
)
if "%*" EQU "" (
start !MYGVIMPATH! %*
) else (
start !MYGVIMPATH! !GVIMSINGLEINSTANCE! %*
)