This commit is contained in:
Ian Keane 2020-06-25 15:45:58 -04:00
commit 96502e5267
13 changed files with 1803 additions and 0 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
*.un *.un
*.un~ *.un~
/vim/.vim/plugins/* /vim/.vim/plugins/*
*.swp

110
autohotkey/AHK_Scripts.ahk Normal file
View file

@ -0,0 +1,110 @@
; vim.exe should be in the %path% variable or in the same directory as vimedit.exe
#SingleInstance force
Hotkey, XButton1 & v, EditSelect
Hotkey, XButton1 & s, EditSelectSql
Hotkey, XButton1 & p, EditSelectPython
Hotkey, XButton1 & z, EditSelectTest
EditSelect:
winId := WinExist("A")
Clipboard =
Send ^{ins}
; If no text is selected then select the current line
if Clipboard =
{
Send {home}
Send +{end}
Send ^{ins}
}
; if this isn't in home folder I get permissions issues
fileName := "c:\users\ikeane\es" . A_YYYY . A_MM . A_DD . A_Hour . A_Min . A_Sec . A_MSec
FileDelete, %fileName%
FileAppend, %Clipboard%, %fileName%
; noudf turns off undofiles
runwait, "c:\Program Files (x86)\Vim\vim82\gvim.exe" -c "set noudf" %fileName%, c:\
FileRead, contents, %fileName%
StringRight, ending, contents, 2
if ending = `r`n
StringTrimRight, contents, contents, 2 ; remove last crlf from clipboard
Clipboard := contents
WinActivate ahk_id %winId%
Send +{ins}
contents =
FileDelete, %fileName%
return
EditSelectTest:
winId := WinExist("A")
Send ^{ins}
fileName := "c:\users\ikeane\es" . A_YYYY . A_MM . A_DD . A_Hour . A_Min . A_Sec . A_MSec
FileDelete, %fileName%
FileAppend, %Clipboard%, %fileName%
runwait, "c:\Program Files (x86)\Vim\vim82\gvim.exe" -c "set noudf" %fileName%, c:\
FileRead, contents, %fileName%
StringRight, ending, contents, 2
if ending = `r`n
StringTrimRight, contents, contents, 2 ; remove last crlf from clipboard
Clipboard := contents
WinActivate ahk_id %winId%
Send +{ins}
contents =
FileDelete, %fileName%
return
EditSelectSql:
winId := WinExist("A")
Clipboard =
Send ^{ins}
; If no text is selected then select the current line
if Clipboard =
{
Send {home}
Send +{end}
Send ^{ins}
}
; if this isn't in home folder I get permissions issues
fileName := "c:\users\ikeane\es" . A_YYYY . A_MM . A_DD . A_Hour . A_Min . A_Sec . A_MSec
FileDelete, %fileName%
FileAppend, %Clipboard%, %fileName%
; noudf turns off undofiles
runwait, "c:\Program Files (x86)\Vim\vim82\gvim.exe" -c "set noudf syntax=sql" %fileName%, c:\
FileRead, contents, %fileName%
StringRight, ending, contents, 2
if ending = `r`n
StringTrimRight, contents, contents, 2 ; remove last crlf from clipboard
Clipboard := contents
WinActivate ahk_id %winId%
Send +{ins}
contents =
FileDelete, %fileName%
return
EditSelectPython:
winId := WinExist("A")
Clipboard =
Send ^{ins}
; If no text is selected then select the current line
if Clipboard =
{
Send {home}
Send +{end}
Send ^{ins}
}
; if this isn't in home folder I get permissions issues
fileName := "c:\users\ikeane\es" . A_YYYY . A_MM . A_DD . A_Hour . A_Min . A_Sec . A_MSec
FileDelete, %fileName%
FileAppend, %Clipboard%, %fileName%
; noudf turns off undofiles
runwait, "c:\Program Files (x86)\Vim\vim82\gvim.exe" -c "set noudf syntax=Python" %fileName%, c:\
FileRead, contents, %fileName%
StringRight, ending, contents, 2
if ending = `r`n
StringTrimRight, contents, contents, 2 ; remove last crlf from clipboard
Clipboard := contents
WinActivate ahk_id %winId%
Send +{ins}
contents =
FileDelete, %fileName%
return

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,941 @@
:100000000C941F020C9466020C9466020C949609E0
:100010000C9466020C9466020C9466020C946602C0
:100020000C9466020C9466020C94651A0C94371BAF
:100030000C94FB150C9466020C9466020C946602F8
:100040000C9466020C9466020C9466020C94660290
:100050000C9466020C9448160C9466020C9466028A
:100060000C9466020C9466020C9466020C94660270
:100070000C9466020C9466020C9466020C94660260
:100080000C9466020C9466020C9466020C94660250
:100090000C9466020C9466020C9466020C94660240
:1000A0000C9466020C9466020C9466021C0C1C0CE8
:1000B0004E0C4E0CB10DB10DB10DB10D9B0C300DB0
:1000C000410D410DA10DB10DB10DAA0D450E450E0D
:1000D000570E570E4E0E570E570E570E450E450E25
:1000E000530E570E570E530EA41BCB1BC31CCB1B1A
:1000F000C31C171C3A1CC31C911CA01C2B631400AE
:100100001A000800150017002F00296104001600CE
:10011000070009000A00260226621D001B000600D7
:10012000190005001350000000000000E200E30089
:10013000125049002A00130012000C0018001C0085
:100140003000340033000F000E000D000B002702BA
:100150002800380037003600100011001150000050
:1001600000000000155046002C0014502B003602F1
:10017000520037020000000000002900500051002A
:100180004F00000000000000000000000000B2006E
:10019000000000000000000000000000000000005F
:1001A000000000002A002E0226002500240038004E
:1001B000000022022D00230022002100250223023C
:1001C00028002E0020001F001E0027000100000054
:1001D000000000000000000000000000000000001F
:1001E000000000000000000000000000000000000F
:1001F00000004E004A000000000000000000000067
:1002000000004B00000000000000000000000000A3
:10021000010000002A004C00000000000000000067
:10022000000000004F00520051005000000000008C
:1002300000000000000000000000000000000000BE
:1002400000000000000000000000000035001E0259
:100250001F02200221022202000000003A003B009F
:100260003C003D003E0000000000000000000000D7
:10027000000000000000000000000000000000007E
:10028000000000002D024500440025022402230244
:100290000000310043004200410040003F000000E8
:1002A000000000000000000000000000000000004E
:1002B000000000000000000000000100000000003D
:1002C000000000000000000000000000000000002E
:1002D000BE00000000000000000000000000000060
:1002E000000000000000000000000000000000000E
:1002F000000000000000AE0000000000BD00000093
:10030000000000000000AB00A900AA00AC00E30060
:100310000000000000000000A80000000000000035
:1003200000000000000000000000010000000000CC
:1003300000000000000000000000000000000000BD
:1003400000000000000000000000000000000000AD
:10035000000000000000000000000000000000009D
:10036000000000000000000000000000000000008D
:10037000000000000000000000000000000000007D
:10038000000000000000000000000000000000006D
:100390000000000001000000000000000403300025
:1003A00000000C03500069006E006B007900000033
:1003B0001403740061006D0061006E006900730039
:1003C0006800690000000403090409022200010119
:1003D00000A0FA0904000001030101000921110134
:1003E00000012240000705810308000A12011001E4
:1003F00000000008EDFE603001000102030105016C
:100400000906A101050719E029E71500250195084E
:10041000750181029501750881010507190029FF01
:10042000150026FF009506750881000508190129A9
:1004300005950575019102950175039101C011247F
:100440001FBECFEFDAE0DEBFCDBF04B603FE27C08C
:100450008091E8019091E901A091EA01B091EB014E
:100460008730904BA740B04BD1F41092E801109226
:10047000E9011092EA011092EB0114BE84B7877F64
:1004800084BF0FB6F894A89580916000886180932E
:100490006000109260000FBEE0E0F8E3099511E003
:1004A000A0E0B1E0E2E8FAE302C005900D92A632C6
:1004B000B107D9F721E0A6E2B1E001C01D92A83E44
:1004C000B207E1F70E94A7170C943F1D0C9400009F
:1004D0000C9423050C9421050C9472020C94C80210
:1004E00081E0089581E0089508950C9474021F93AB
:1004F000CF93DF9300D000D01F92CDB7DEB74983F2
:100500005A836B833091450189819A81311114C0DE
:10051000662359F0222349F00E947E13182F682F7A
:1005200089819A810E94271303C00E945213182FB9
:1005300069817A81812F04C00E947E1369817A814A
:100540000F900F900F900F900F90DF91CF911F9110
:100550000C942703FC01262F408151816281738115
:1005600084810C947702CF93DF93EC0160E00E94CA
:10057000AA02BE01DF91CF910C9475020E94B014C3
:10058000811102C00E9450150C9468020C946A02FA
:10059000089581E008950C94C902CF93C82F0E945A
:1005A0006E028C2F0E94CB02CF91089508950E9475
:1005B000330E0E94D6022FEF84E39CE0215080404E
:1005C0009040E1F700C000000C946E160F931F934B
:1005D000CF93DF93EC0161E00E94AA028C01BE017F
:1005E0000E946C02882349F1BE01C8010E944E0797
:1005F000882319F1BE01C8010E948F078823E9F002
:10060000BE01C8010E94BA088823B9F08A818823F4
:1006100069F001158CE5180731F00E3D1C4531F4E9
:100620000E9450150AC00E94D70207C0CE01DF9178
:10063000CF911F910F910C94700280E0DF91CF91C8
:100640001F910F91089580E090E00895089528E3A8
:10065000829FC0011124FC0127E0729FE00DF11D73
:100660001124E60FF11DEE0FFF1FE450FF4F85919F
:1006700094910895880F991FFC01E456FC4F8591D1
:1006800094910895CF93DF930E9427030E943E0424
:10069000EC01811521E59207A0F5811540E594074D
:1006A00008F086C0C11580E2D807F0F4C11521E03A
:1006B000D20708F0DFC0C03ED10588F4C03CD105A8
:1006C00008F062C0C130D10509F4D4C008F4D0C02C
:1006D000CE010497813A910508F4CCC0C9C0C83E48
:1006E000D10508F4C7C0C4C0C11540E4D40708F060
:1006F0005CC0C11580E3D80708F04DC0CE019F70E3
:1007000046C0811525E59207A0F4811544E59407BC
:1007100008F095C0C11583E5D80708F07AC0C11567
:1007200022E5D20708F05FC0DC2FCC27C16FD06A6A
:10073000A1C0811549E59407A0F4C11588E5D80743
:1007400008F082C0C11526E5D20708F091C08C2FB1
:100750000E94D2048F71C82FD0E0DC2FCC27D0624A
:1007600089C081154AE5940708F473C09056811535
:10077000904208F07DC08D2F8F710E94D204DD273A
:10078000D0628F71D82B76C0CE01805C91090E9417
:100790003A03EC016FC0CE019927D3FF03C0EC01EF
:1007A000D86C68C0EC01D06C65C0DF70D06A62C0E4
:1007B00074E0969587957A95E1F783709C2F9370F6
:1007C00021E030E002C0220F331F9A95E2F73C6827
:1007D000382BCF70C695C69540E2C49FE001112426
:1007E000C22BD32B47C0CE018370992721E030E084
:1007F00002C0220F331F8A95E2F78C2F86958695CB
:1008000040E2849FC0011124E901C82BD92BDC6888
:1008100031C0CE018370992721E030E002C0220F61
:10082000331F8A95E2F78C2F8695869540E2849F48
:10083000C0011124E901C82BD92BDA681BC0D82FBD
:10084000CC27C46FD06A16C0DC2FCC27C06FD06A0B
:1008500011C08F700E94D20494E0D695C7959A95E6
:10086000E1F7CF70D0E0DC2FCC27D069C82B02C0D5
:10087000C0E0D0E0CE01DF91CF910895823891059C
:1008800069F1B0F48133910509F46DC048F48932FF
:10089000910509F463C08A32910509F469C008958D
:1008A0008533910509F455C089339105B9F0089550
:1008B000833E910569F138F4803E9105B1F0823EA6
:1008C000910509F10895863E9105A9F1873E9105AC
:1008D000B9F1843E910509F064C023C02091D9018B
:1008E00020FD4FC021FD4DC008958091D90180FDAC
:1008F00044C08091DA0180FF44C08091D90184FD19
:1009000042C083EE4DC08091D90182FF38C0F5CF3F
:100910008091D90182FD33C08091DA0180FD31C020
:10092000ECCF8091DA0181FF32C08091D90184FD42
:100930002AC087EE35C08091D90183FF26C0F5CF4C
:100940008091D90183FD21C08091DA0181FD1FC012
:10095000ECCF8091D90185FD1CC01DC08091D901CB
:1009600085FD19C016C08091D90186FD16C017C03B
:100970008091D90186FD13C010C089E311C082EEB9
:100980000FC080EE0DC080E00BC086EE09C084EE83
:1009900007C089E205C085E303C08AE201C081E3A4
:1009A00090E008959091D90192FF0DC0282F2871F1
:1009B000283019F4877F846006C0282F24712430E2
:1009C00011F48B7F886093FF0DC0282F2871283188
:1009D00019F4877E846106C0282F2471243111F414
:1009E0008B7E88612091DA0120FF0DC0382F38718D
:1009F000383019F4877F816006C0382F317131306B
:100A000011F48E7F886021FF0DC0282F28712831B6
:100A100019F4877E816106C0282F2171213111F4DC
:100A20008E7E886194FD877E0895E82FF0E0E5537F
:100A3000FE4F80810895089580EA8A95F1F7089520
:100A400008950C9420050C9420050895CF93DF930E
:100A50000E9493068091000180910001811102C0E3
:100A600094E001C090E09093D40184E0891B8093CE
:100A7000D301ADE1B1E041E251E061E070E08D9180
:100A8000E82FE295EF70F0E021A18F70EB0102C03A
:100A9000CC0FDD1F8A95E2F7CE019C2F9095922313
:100AA00091A392A1892B82A34A175B0741F7A6E184
:100AB000B1E04DE151E061E070E08D91E82FE29509
:100AC000EF70F0E021A18F70EB0102C0CC0FDD1FB1
:100AD0008A95E2F7CE019C2F9095922391A392A143
:100AE000892B82A34A175B0741F7E3ECF1E0ABECFB
:100AF000B1E08BEC91E011921D928E179F07D9F710
:100B000084E00E943D060E94BE02DF91CF910C94CA
:100B10009D060E9474068823F1F08091D30190E035
:100B200085539E4F0E94B006811111C0809126010D
:100B30008F5F80932601863060F0E091D301F0E072
:100B4000E553FE4F108211821282138202C010926E
:100B500026010C94C6028091D40190E085539E4FEB
:100B60000E94CB060C9425056F927F928F929F92E4
:100B7000AF92BF92CF92DF92EF92FF920F931F93AB
:100B8000CF93DF938DE1882E81E0982E03EC11E066
:100B900097ECA92E91E0B92E712CCC24C394D12CC2
:100BA000F40181914F01C82FC295CF70D0E099A177
:100BB0008F70760101C0EE0C8A95EAF7892F8E2995
:100BC00089A38AA16E2C609486218AA30E941C05A9
:100BD000E6E1F1E040E050E020E03191A32FA29562
:100BE000AF70B0E090968C9190E03F7002C0959508
:100BF00087953A95E2F780FD07C08C2D042E01C041
:100C0000880F0A94EAF701C080E0282B4F5F5F4FFE
:100C10004730510511F789A1682269A28AA1E82A03
:100C2000EAA2F8018081281719F0208381E001C031
:100C300080E0782A0F5F1F4FA016B10609F0B0CFF1
:100C40006091D40170E065537E4F272D44E083EC22
:100C500091E00E943E060E948905872DDF91CF9189
:100C60001F910F91FF90EF90DF90CF90BF90AF90CA
:100C70009F908F907F906F9008950895FF920F93AB
:100C80001F93CF93DF938C01F62ED72FC42F2223EF
:100C900049F081E0809329010E942D16909328014C
:100CA00080932701809129018823C1F08091270139
:100CB000909128010E943916069780F0EF2DFD2FA4
:100CC000D8014C2F50E0CD01801B910B8417950764
:100CD0001CF48D918193F7CF10922901DF91CF9170
:100CE0001F910F91FF90089580912A01811112C0E8
:100CF0008091D80080618093D8008AE18A95F1F7CD
:100D000000C08091D90080FD02C082E001C081E076
:100D100080932A0181E090912A01913009F080E0CE
:100D200008950C9474060E949106809300010E941D
:100D3000740681110C94A40608950E947406811112
:100D400002C00C94AA06089561E070E081E091E091
:100D50000C94480961E070E081E091E00C944F0947
:100D6000CF93DF93D82FC92F0E94E709892B79F4FD
:100D7000ED2FFC2F80E090E0DC01A45DBE4F2C91B4
:100D80002193019684309105B9F781E001C080E09C
:100D9000DF91CF91089520E030E0FC014191CF0137
:100DA000F901E45DFE4F40832F5F3F4F2430310552
:100DB000A1F708950F931F93CF93DF93C62FD42FDE
:100DC000122FFC0182818823C9F0609332010E94B6
:100DD0002D16909331018093300180E28C0F883082
:100DE00008F057C0C77081E001C0880FCA95EAF7C4
:100DF000DF91CF911F910F910C94D80B809132010C
:100E0000681330C080913001909131010E943916F1
:100E1000883C910538F500E20D0FCD17B9F080E25E
:100E20008C0F883040F4C77081E001C0880FCA95EC
:100E3000EAF70E94DF0B083028F581E09D2F9770BC
:100E400001C0880F9A95EAF70E94D80B812F0E9463
:100E5000C50B0830F0F4D77081E001C0880FDA9537
:100E6000EAF70AC080E28C0F883098F4C77081E0FE
:100E700001C0880FCA95EAF7DF91CF911F910F91BA
:100E80000C94DF0B812FDF91CF911F910F910C9468
:100E9000C50BDF91CF911F910F9108959C01CB015C
:100EA000233F4CE53407F9F078F4283DFCE53F0793
:100EB000B9F0293D4CE5340711F1273D3C4531F5AA
:100EC00026E241EE61EE1EC0253FFCE53F0799F0AA
:100ED00070F0263F3C45D1F427E245EE66EE12C0A5
:100EE00027E245EE0EC026E241EE60EE0BC027E29F
:100EF00045EE64EE07C026E241EE62EE03C028E252
:100F000041E065EE0E94DA0680E00895FC018281EE
:100F1000882319F010923201089581E00895CF934B
:100F2000DF93EC01FB018281882309F41FC1C230E9
:100F3000FCE5DF0708F41BC1C6319CE5D90738F092
:100F40009E012A5F3C452930310508F010C10E94FE
:100F5000C3149093DA018093D901C031ECE5DE0728
:100F600009F4C3C008F041C0C8308CE5D80709F4C3
:100F70009AC0F0F4C430ECE5DE0709F487C068F4E9
:100F8000C2308CE5D80709F477C0C330DC4509F0DE
:100F9000E3C08091D901826076C0C630ECE5DE07FF
:100FA00009F46EC008F07BC08091D90188606BC0E5
:100FB000CC308CE5D80709F485C068F4CA30ECE57C
:100FC000DE0709F474C008F079C00E94330E8091E6
:100FD000D901806858C0CE308CE5D80709F476C0B6
:100FE00008F07FC08091D9018BC0CB3FECE5DE07D4
:100FF00009F44FC018F5C3318CE5D80709F47DC05A
:1010000078F4C131ECE5DE0709F473C0C231DC4588
:1010100009F0A2C00E94330E8091D9018F7733C0AE
:10102000C5318CE5D80709F472C008F486C0CA3F00
:10103000DC4509F091C08091DA013EC0CF3FFCE56C
:10104000DF0709F45FC058F4CD3F9CE5D90709F4E8
:1010500044C008F43FC08091DA0182602DC0C130E5
:10106000FDE5DF0709F475C008F45DC0C230DD4559
:1010700009F072C080E06EC08091D901816003C028
:101080008091D90180618093D90166C08091D90196
:1010900011C08091DA0182608093DA015DC0809195
:1010A000D9018062F0CF8091D9018064ECCF80912A
:1010B000D90188608460E7CF8160EECF8091D9014B
:1010C0008E7FE1CF8091D9018D7FDDCF8091D901D5
:1010D000877FD9CF8091DA0118C08091DA018D7FA6
:1010E000DBCF8091D9018F7ECECF8091D9018F7DCA
:1010F000CACF8091D9018F7BC6CF8091D901877FDC
:101100008B7FC1CF8091DA018D7F8E7FC5CF80919B
:10111000D90182FB222720F991E0922790FB82F9E6
:1011200090FB83F9B0CF8091DA01982F9095917060
:101130008E7F892B90FB81F9AFCF0E94330E809177
:10114000D90187FB222720F991E0922790FB87F9AC
:101150009ACF81E00E9452158091D9019091DA01D5
:101160000E94D4140E94330E80E001C081E0DF9120
:10117000CF910895CF93DF9386319C4541F5EB01E4
:101180000E94FF13982F8A812091090130910A0152
:10119000882379F09A7A81E009F480E08093330122
:1011A000911102C069E201C065E3C9010E9499156D
:1011B0000AC080913301811102C069E201C065E378
:1011C000C9010E949B150E944D1480E001C081E07E
:1011D000DF91CF9108958EE14A9B02C08150E1F7E3
:1011E0004A9BFECF08955A9880E28A95F1F75A9A61
:1011F0000895FC012AE02A95F1F728E090E080E0CC
:1012000031E040E14A95F1F7880F4A9B02C08160C6
:10121000932700C0000040E14A95F1F7215089F77B
:1012200020E12A95F1F729B100C0000030E13A959C
:10123000F1F722FB222720F992272081920F908339
:101240000895EF92FF920F931F93CF93DF931F9216
:10125000CDB7DEB719828C017C01E60EF11C0E15AC
:101260001F0551F00E94EB08CE0101960E94F9087B
:10127000F80181938F01F3CF81E09981911180E092
:101280000F90DF91CF911F910F91FF90EF900895F4
:101290009093350180933401529A5A9A089590930D
:1012A00035018093340152985A9AEA9AE9E6F0E0BF
:1012B00080818F7C80830895615091E001C0990FF7
:1012C0006A95EAF720E031E0992361F0492F48233D
:1012D00019F05A9A232701C05A9840E24A95F1F72B
:1012E0009695F2CF222311F05A9A01C05A9880E2C3
:1012F0008A95F1F75A980895FF920F931F93CF9311
:10130000DF93EC018C01060F111DC017D10741F0CE
:10131000F9900E94F30868E08F2D0E945C09F5CFD8
:10132000DF91CF911F910F91FF9008951F920F921F
:101330000FB60F9211242F933F934F935F936F93A8
:101340007F938F939F93AF93BF93CF93DF93EF934D
:10135000FF935A98529AC0913401D09135016D8112
:10136000662321F08E819F810E947C090E94F308F0
:1013700080E18A95F1F75A9852985A9A80E18A95B5
:10138000F1F76A81662351F08B819C810E942109CB
:10139000E881F981811104C082E003C0E881F9810C
:1013A00088E080830E94EB08FF91EF91DF91CF915D
:1013B000BF91AF919F918F917F916F915F914F916D
:1013C0003F912F910F900FBE0F901F901895CF93C4
:1013D000DF93C0913401D0913501F894529A5A9814
:1013E00085E08A95F1F7000052985A9A80E28A9532
:1013F000F1F74A9B0AC0529A5A9AE881F98181E032
:101400008083789481E090E02CC06D81662381F028
:101410008E819F810E94210981110AC0529A5A9A95
:10142000E881F98182E08083789482E090E019C0BD
:101430000E94EB0880E28A95F1F75A98529A80E16F
:101440008A95F1F76A81662321F08B819C810E9445
:101450007C090E94F308E881F9811082789480E089
:1014600090E0DF91CF91089590933B0180933A01F2
:101470000895E0913A01F0913B01309721F00190FD
:10148000F081E02D099480E00895E0913A01F09117
:101490003B01309721F00280F381E02D09940895FB
:1014A00020913801309139012817390771F0909354
:1014B000390180933801E0913A01F0913B01309776
:1014C00021F00680F781E02D0994089520913601DE
:1014D000309137012817390771F0909337018093C5
:1014E0003601E0913A01F0913B01309721F0008400
:1014F000F185E02D0994089585B7806885BF85B78B
:10150000806885BF089508950C94830A0C94840A1A
:101510000C94830A0C94830A0E947C0A0E94880A15
:101520000C94860A0C9474060E9424160E942605C8
:101530000E947F160C948A0AAF92BF92CF92DF92DC
:10154000EF92FF920F931F93CF93DF93CDB7DEB748
:101550002A970FB6F894DEBF0FBECDBF0E94B40528
:101560000E94920A811111C08FEF89838A831B82A6
:101570000E942D168160782F9D838C8349815A812A
:101580006B818D810E94320B40C08DE3A82E81E0DB
:10159000B82E00E010E0C02E802F0E941505E82E26
:1015A000F501D1905F01D82631F40F5F1F4F08304D
:1015B000110589F7D9CF8091B60181FD0E941B05E5
:1015C00080E0FF24F3949D2D9F21D1F08E83CF8264
:1015D000EF2081E009F480E088870E942D16816069
:1015E000782F9A8789874E815F8168858A850E94D6
:1015F000320BF801E35CFE4F8081F826F08205C0D3
:101600008F5FFF0C8730F9F6D0CF0E94390A909196
:101610003C018917B1F00E94390A80933C012A9657
:101620000FB6F894DEBF0FBECDBFDF91CF911F91F3
:101630000F91FF90EF90DF90CF90BF90AF900C9400
:10164000CD022A960FB6F894DEBF0FBECDBFDF9154
:10165000CF911F910F91FF90EF90DF90CF90BF90AF
:10166000AF900895CF93DF93CDB7DEB72B970FB62A
:10167000F894DEBF0FBECDBF4F83588769877A8746
:101680008B87DE01119686E0FD0111928A95E9F7BC
:1016900085E0FE01379601900D928A95E1F7498128
:1016A0005A816B817C818D819E810E94EC102B96EA
:1016B0000FB6F894DEBF0FBECDBFDF91CF91089576
:1016C000FC01808191810E94C0130895CF938823EB
:1016D00071F1C82F8CEF8C0F813AD0F46C2F809170
:1016E000090190910A010E946315882349F06C2F2B
:1016F0008091090190910A010E949B150E944D144E
:101700006C2F8091090190910A010E9499150CC0DB
:1017100080E28C0F883058F4C77081E001C0880FD8
:10172000CA95EAF70E940214CF910C944D14CF9100
:101730000895882349F1682F8CEF860F813A38F499
:101740008091090190910A010E949B150CC080E2D2
:10175000860F883050F4677081E001C0880F6A9569
:10176000EAF70E9408140C944D148BE5860F833021
:1017700020F480E090E00C94500A685A673120F41D
:1017800080E090E00C94660A0895CF93C82F0E94E1
:10179000660BC93349F42FEF87EE93E02150804068
:1017A0009040E1F700C000008C2FCF910C94990B72
:1017B000882321F00E9402140C944D14089588236C
:1017C00021F00E9408140C944D140895CF92DF92DA
:1017D000EF92FF920F931F93CF93DF937C01062F1D
:1017E000C72FFC01D581D295DF70128111110E94A3
:1017F0001F140E94F813882399F0112389F08C2F6D
:10180000807F803421F080E2800F883048F082E0D1
:101810000E9497140E94F81391E0D82ED92601C097
:10182000D12CCC2EC2948FE0C8228C2D90E0FC01EC
:10183000EA5AFF4F0C94F71C8C2F807FCF708823BF
:1018400011F0C295C07F112399F0CC2309F464C133
:1018500080E2800F883010F0011104C08C2F0E94AC
:10186000021403C08C2F0E9412140E944D1454C104
:10187000802F0E94990BCC2309F473C180E2800F62
:10188000883010F0011104C08C2F0E94081403C08E
:101890008C2F0E9418140E944D1463C18C2F807FDE
:1018A000CF70803211F0C295C07F002319F0013053
:1018B000C9F022C0112371F0DD2341F0D13031F4A1
:1018C0000E9432148C2B0E943A144BC10E94321495
:1018D0008C2B1DC0DD2319F0D13009F442C10E94C8
:1018E000431425C0112321F0D63008F03AC10EC0B0
:1018F000D53008F036C11BC0112361F0DD2331F073
:10190000F701858180FF08C18F7085838C2F0E942D
:10191000D80B27C1DD2359F0093309F00EC1FFEFC1
:1019200027EE83E0F15020408040E1F704C18C2F86
:101930000E94DF0B16C18C2F837009F045C0111176
:1019400014C1402F429546954770440F440F602FB5
:101950006F70862F90E0A0E0B0E0042E04C0880FE6
:10196000991FAA1FBB1F0A94D2F704FF10C00FE0F3
:1019700010E020E030E004C0000F111F221F331FD1
:101980004A95D2F7009510952095309503C000E058
:1019900010E09801C695C695C370BC01CD01602BBF
:1019A000712B822B932BC23049F058F4C13019F0BF
:1019B0000E943D12DAC00E942B12D7C00E944F1223
:1019C000D4C00E942912D1C0112319F08C2F81702C
:1019D00001C08695882309F4C8C0402F42954695DA
:1019E0004770440F440F602F6F70862F90E0A0E087
:1019F000B0E0042E04C0880F991FAA1FBB1F0A94D1
:101A0000D2F704FF10C00FE010E020E030E004C087
:101A1000000F111F221F331F4A95D2F70095109512
:101A20002095309503C000E010E09801C695C6955A
:101A3000C370BC01CD01602B712B822B932BC23064
:101A400049F058F4C13019F00E9402138EC00E9470
:101A5000F0128BC00E94141388C00E94631285C0CC
:101A6000CF70112339F08C2F0E948912802F0E9491
:101A7000D80B7BC0802F0E94DF0B8C2F0E94AA12F4
:101A800074C0023F01F128F4003F41F0013FA1F092
:101A90003FC0033FF9F0043F39F13AC0112341F050
:101AA000D53008F05EC08C2F8F710E94CF1259C0C4
:101AB000D63008F056C0F7CF112339F08C2F8F7134
:101AC0000E9489124EC01123C9F38C2F8F710E947E
:101AD000AA1247C0112329F08C2F8F710E94741213
:101AE00040C00E946F123DC0112349F0CF718C2F6E
:101AF0000E94891263E08C2F0E94821432C081E020
:101B00000E949714D23068F182E00E94971429C095
:101B1000112331F0DD2391F2802F0E94660B21C04A
:101B2000DD2399F2093349F49FEFE7EEF3E091509A
:101B3000E040F040E1F700C00000802F0E94990BC8
:101B400010C04C2F4F70602FC7010E9423030E94CA
:101B50009A110FC04C2F4F70602FC7010E942603AF
:101B600008C088EF8C0D843020F40E94390A0E944E
:101B7000CD02DD20C9F00E94F41380FD15C0F701ED
:101B800012820E94EE130E948912C7010E94F50D75
:101B90000E94EE13DF91CF911F910F91FF90EF9074
:101BA000DF90CF900C94AA12DF91CF911F910F91EB
:101BB000FF90EF90DF90CF9008950F931F93CF93F6
:101BC000DF93EC01688179818A810E94CB138C01BB
:101BD0000E9426130E941712B801CE010E94E60B44
:101BE000DF91CF911F910F910895CF93DF93EC0177
:101BF000988189812B813C81232B31F08F3F31F4F7
:101C000081E09F3F19F403C081E001C080E080FDC6
:101C100019C0CE010E94E60281110CC00E94F81387
:101C2000882381F08A81882369F082E0DF91CF9157
:101C30000C949714CE010E94DD0DCE01DF91CF915F
:101C40000C94B302DF91CF9108950E941F140E945B
:101C50002F140C944D148091090190910A010E9457
:101C60009D150C94250E0E940F140C942B0EE92F39
:101C7000E295EF704E2F50E0FA013297EE30F10509
:101C8000B0F4EA59FF4F0C94F71C803F91F018F420
:101C9000883E68F40EC0843F51F40BC0883E48F083
:101CA000813F29F406C093FB882780F9089580E0DE
:101CB000089581E008950E94C0130E94370E089590
:101CC000CF93DF9300D000D01F92CDB7DEB70F9037
:101CD0000F900F900F900F90DF91CF910895CF93B9
:101CE000DF9300D000D000D0CDB7DEB726960FB678
:101CF000F894DEBF0FBECDBFDF91CF9108951F9343
:101D0000CF93DF93C091460116E080914701C81739
:101D100099F0D0E01C9FF0011D9FF00D1124E85BAD
:101D2000FE4F4081518162817381848195810E943F
:101D30006F0E2196C770E9CFDF91CF911F91089563
:101D4000409178015091790160917A0170917B0105
:101D500080917C0190917D010C946F0E0F931F93E5
:101D6000CF93DF9380917D0182958F7009F05DC0E4
:101D700080917A01882309F458C08091460110911E
:101D800047016091780170917901C0917B01D091F8
:101D90007C0191E06F3F09F090E0292F06E0811768
:101DA00009F443C0209721F07F3F21F030E003C0C9
:101DB00031E001C0322F90E030FD34C0089FF001C7
:101DC000099FF00D1124DF01A85BBE4F11963C91D5
:101DD0001197371327C03C91361324C012963C91BB
:101DE000129731111FC013964D915C9114974C1BA3
:101DF0005D0B483C5105B0F480917D018F7080618E
:101E000080937D01E35BFE4F80818F7080618083D2
:101E100088E791E00E94F50DDF91CF911F910F911E
:101E20000C947F0E01968770BACFDF91CF911F91EE
:101E30000F9108959F92AF92BF92CF92DF92EF924F
:101E4000FF920F931F93CF93DF93CDB7DEB76197C8
:101E50000FB6F894DEBF0FBECDBF8C0185E0F80150
:101E6000DE011D9601900D928A95E1F7F8014081FF
:101E70005181E280909178016091790120917B01FC
:101E800030917C012115310531F06F3F31F481E053
:101E90009F3F19F403C081E001C080E0F82FF1708A
:101EA0009F2E80FD46C1F801A380B48088E7C82E2C
:101EB00081E0D82EF0907A01F501E21BF30BFF20B0
:101EC00009F4DFC080917D01E83CF10508F09BC07A
:101ED000282F207F09F052C0561313C0491311C098
:101EE000FE2CE1100EC08F70806180937D010E94F6
:101EF000A00EC6010E94F50D80917D01F801858339
:101F000058C1AB2831F05F3F31F481E04F3F19F405
:101F100003C081E001C080E080FD03C081E08E2528
:101F200002C080E090E0F82FF170FF2E80FF1CC00F
:101F3000809146012091470136E0821709F417C1CC
:101F400090E0389FF001399FF00D1124E85BFE4FBF
:101F50006181561306C06081461303C06281E61298
:101F600003C001968770E9CFFE2CEE2009F421C151
:101F700080917D01816080937D015AC0561306C017
:101F8000491304C0E11002C0F8019FC04D875E876D
:101F90008D859E850E945B0E882379F1EE2069F184
:101FA00020917D01822F82958F7090E0029774F0CE
:101FB000809178019091790198878F831986BB86EB
:101FC000AA862C87CE0107960E94F50D86E0F801BF
:101FD000A8E7B1E001900D928A95E1F70E94AE0E5C
:101FE0000E94A00E0DC0561729F14D875E878D8582
:101FF0009E850E945B0E81112CC0C8010E94F50DC8
:10200000FF24F394D6C0282F207F69F77A2DB98A50
:10201000A88A6E2D89890E94600E88E791E00E944F
:10202000F50D86E0F60111928A95E9F70E94A00E5F
:10203000F12CBFC04913D9CFE110D7CFF801858368
:10204000C8010E94F50D86E0F60111928A95E9F724
:10205000B0C0EE2091F220917D01822F82958F7089
:1020600090E002970CF4B2CF8091780190917901C1
:102070009A8389831B82BD82AC822E83CE01019616
:10208000A3CFE83CF10508F047C0FE2CEE2009F490
:10209000B4CF561330C049132EC020917D0120FDCE
:1020A00021C0822F82958F70482F50E04115510535
:1020B000C9F0F80125834F30510541F08F5F982F0B
:1020C0009295907F822F8F70892B8583C8010E9403
:1020D000F50D86E0F801A8E7B1E001900D928A9530
:1020E000E1F742C086E0F801A8E7B1E001900D9267
:1020F0008A95E1F75EC04D875E878D859E850E943B
:102100005B0E811163CF80917D01816080937D01A1
:10211000C8010E94F50D4DC07A2DB98AA88A6E2D8E
:1021200089890E94600E86E0F60111928A95E9F78E
:102130001BC0EE2009F461CF4D875E878D859E859B
:102140000E945B0EF82E882309F457CF86E0F80131
:10215000A8E7B1E001900D928A95E1F788E791E058
:102160000E94600B0E94AE0E0E94A00E22C04D87FE
:102170005E878D859E850E94C013292F22952F7022
:10218000223028F49F7039F0811105C00BC0243033
:1021900028F49F7049F4805E883020F0C8010E94C6
:1021A000F50D9F2CF92C05C0F8019581907F99F7CA
:1021B000F9CF8F2D61960FB6F894DEBF0FBECDBF5D
:1021C000DF91CF911F910F91FF90EF90DF90CF9013
:1021D000BF90AF909F9008951F93CF93DF93CDB79B
:1021E000DEB72C970FB6F894DEBF0FBECDBF4F837E
:1021F000588769877A878B879C87CE0107960E94CC
:102200001A0F8823D1F09F8188852A853B85232B4F
:1022100031F08F3F31F481E09F3F19F403C081E03A
:1022200001C080E080FD47C04F81588569857A856F
:102230008B859C850E946F0E3EC086E0FE0137961E
:10224000DE01119601900D928A95E1F7FF81E885F4
:102250006A857B856115710531F0EF3F31F481E0CE
:10226000FF3F19F403C081E001C080E080FD23C07E
:102270002091470130E0C90101968770992740916C
:10228000460150E084179507F1F1F983EA837D83D5
:102290006C8396E0929FD001939FB00D1124A85BB0
:1022A000BE4FFE01319601900D929A95E1F7809311
:1022B00047010E947F0E16E08091460190914701F0
:1022C000891771F1189FC0011124885B9E4F0E94ED
:1022D0001A0F882329F1E09146011E9FF001112475
:1022E000E85BFE4F408151816281738184819581D9
:1022F0000E946F0E8091460190E0019687709927A9
:1023000080934601D9CF0E94330E1092470110925C
:102310004601E8E7F1E086E0DF011D928A95E9F7E2
:102320002C960FB6F894DEBF0FBECDBFDF91CF91D4
:102330001F910895EF92FF920F931F93CF93DF9316
:102340008C01892B09F46CC0F12CEE24E394E80194
:102350002196F8018491843740F4843008F051C00C
:10236000813081F0823019F15BC0853709F444C0B7
:10237000A8F19CE7980F903708F052C08F770E9421
:10238000990B41C00E5F1F4FFE01849190E2980FA0
:10239000983050F48770FE2D01C0FF0F8A95EAF740
:1023A0008F2F0E94221414C00E94660B2DC00E5F56
:1023B0001F4FFE01849190E2980F983060F487706F
:1023C000FE2D01C0FF0F8A95EAF78F2F0E94281477
:1023D0000E944D1419C00E94990B16C00E5F1F4F2A
:1023E000FE01C491CC2381F08FE99FE00197F1F7C2
:1023F00000C00000C150F6CF0E5F1F4FFE01F490E9
:1024000003C00E94660B8E018F2D882309F49FCF95
:10241000EFE9FFE03197F1F700C000008150F5CF00
:10242000DF91CF911F910F91FF90EF900895089544
:1024300008950C9418120C9419120E941B126093A8
:10244000A5017093A6018093A7019093A8010C9415
:10245000250E0C941D120F931F930091A50110914E
:10246000A6012091A7013091A801602B712B822B2E
:10247000932B1F910F910C941D120F931F9300919A
:10248000A5011091A6012091A7013091A801602318
:102490007123822393231F910F910C941D120F938C
:1024A0001F930091A5011091A6012091A7013091E1
:1024B000A80160277127822793271F910F910C9401
:1024C0001D120C9418120E9461126093A101709366
:1024D000A2018093A3019093A4010C94250E60E0C7
:1024E00070E0CB010C9463120F931F9341E050E016
:1024F00060E070E08A019B0104C0000F111F221FE1
:10250000331F8A95D2F7C901B8011F910F910C941E
:1025100063120F931F9341E050E060E070E004C04D
:10252000440F551F661F771F8A95D2F78091A1012E
:102530009091A201A091A301B091A4018A019B01F5
:10254000082B192B2A2B3B2BC901B8011F910F9186
:102550000C9463120F931F9341E050E060E070E031
:1025600004C0440F551F661F771F8A95D2F7409508
:102570005095609570958091A1019091A201A091D4
:10258000A301B091A4018A019B01082319232A23E6
:102590003B23C901B8011F910F910C9463120F9353
:1025A0001F9341E050E060E070E004C0440F551F0D
:1025B000661F771F8A95D2F78091A1019091A201A1
:1025C000A091A301B091A4018A019B0108271927BA
:1025D0002A273B27C901B8011F910F910C94631260
:1025E0000F931F930091A1011091A2012091A301CB
:1025F0003091A401602B712B822B932B1F910F9193
:102600000C9463120F931F930091A1011091A201EA
:102610002091A3013091A40160237123822393238D
:102620001F910F910C9463120F931F930091A101BE
:102630001091A2012091A3013091A401602771277C
:10264000822793271F910F910C946312089527E01E
:10265000929F800D1124E82FE695E695E695877008
:1026600051E001C0550F8A95EAF785E0E89FF00137
:102670001124E258FE4F20E030E070E04081CB01B1
:10268000022E02C0969587950A94E2F78170819593
:1026900084278523842781932F5F3F4F2530310581
:1026A00069F7089527E0929F800D1124682F6695A1
:1026B00066956695982F977085E0689FB001112404
:1026C00040E050E080E0FB01E40FF51FE258FE4FD0
:1026D000208130E0092E02C0369527950A94E2F752
:1026E00021703327042E01C0220F0A94EAF7822BAF
:1026F0004F5F5F4F4530510531F70895BF92CF923C
:10270000DF92EF92FF920F931F93CF93DF938C0191
:10271000C090A101D090A201E090A301F090A4018B
:102720008091A5019091A601A091A701B091A80167
:10273000C82AD92AEA2AFB2ACFE1D0E0D701C6016C
:102740000C2E04C0B695A795979587950A94D2F755
:1027500080FD04C0219790F7B12C07C0BC2EB801B2
:102760008C2F0E9442030197A9F38B2DDF91CF910B
:102770001F910F91FF90EF90DF90CF90BF90089541
:10278000CF93DF93EC010E947E13BE010E944203AF
:10279000DF91CF9108951F93CF93DF93EB01909139
:1027A0004501992321F0CB010E94C01313C0882357
:1027B00049F0CB010E947E13182F682FCE010E9492
:1027C000271304C0CB010E945213182FBE01812F82
:1027D0000E944203DF91CF911F9108958091A9013A
:1027E00085958595859508958091A90187700895AF
:1027F0009091A901977081E009F480E0089580919B
:10280000B50108959091B501892B8093B501089584
:1028100080959091B50189238093B5010895109218
:10282000B50108959091B401892B8093B401089566
:1028300080959091B40189238093B40108951092FA
:10284000B40108959091B301892B8093B301089549
:1028500080959091B30189238093B30108951092DC
:10286000B30108958091AA01089508950C94351438
:102870000C9436149091AA01981721F08093AA0124
:102880000C94381408958091AA01882329F010929D
:10289000AA0180E00C9438140895E0910901F091A8
:1028A0000A018091B5018083E0910901F0910A014C
:1028B00090818091B401892B8083E0910901F0918E
:1028C0000A0190818091B301892B80838091AA01B4
:1028D000882381F0E0910901F0910A019081892B10
:1028E00080838091090190910A010E9457158111FE
:1028F0000E9443148091090190910A010C94450AA9
:102900000C94351498E0899F90011124262B209374
:10291000A9010E9489128091A901859585958595C7
:102920000C9480141092A90180E00C9480142091E2
:10293000A901809582238093A901982F977079F43B
:1029400030E0482F082E000C550B2417350739F0BE
:102950008595859585950E94AA120C9492140895E8
:1029600080E090E00E94051D21E08C3E9E4F09F022
:1029700020E0822F089582E090E00C94FD1C83E01B
:1029800090E00C94FD1CCF9384E090E00E94FD1C2D
:10299000C82F81E290E00E94FD1C2C2F30E0A9019D
:1029A000582BCA01CF910895CF93C92F682F84E087
:1029B00090E00E940B1D6C2F81E290E0CF910C946F
:1029C0000B1DAB01BC018FE090E00C941D1DAB0111
:1029D000BC0183E190E00C941D1D60E070E0CB0130
:1029E0000C94E71460E070E0CB010E94E1140C94B9
:1029F000ED146CEE7EEF80E090E00E94291D60E017
:102A000082E090E00E940B1D60E083E090E00E9475
:102A10000B1D1092A5011092A6011092A701109211
:102A2000A80160E084E090E00E940B1D60E081E27C
:102A300090E00E940B1D60E085E090E00E940B1D7D
:102A400060E086E090E00E940B1D6FEF87E090E071
:102A50000E940B1D40E050E0BA0188E090E00E9427
:102A60001D1D60E08DE090E00E940B1D40E050E0F5
:102A7000BA0188E190E00E941D1D60E087E190E0CE
:102A80000E940B1D40E050E0BA018CE190E00E94F2
:102A90001D1D60E080E290E00E940B1D0C94F2147A
:102AA0000C94F914682F8EE090E00C940B1DFC013F
:102AB000329697E080E0915029F021912223D9F3BA
:102AC0008F5FF9CF0895662349F0FC01329608968E
:102AD0002191621729F0E817F907D1F780E00895EE
:102AE00081E008959C01FC0132969FEF80E04191C6
:102AF000461789F09F3F19F4411101C0982F8F5F4D
:102B00008630A9F79F3F39F0F901E90FF11D97FDD4
:102B1000FA956283089508959C012A5F3F4FFC0156
:102B20004281461301C01282019682179307B9F7BA
:102B300008950C9472150C948C15029626E0FC01F5
:102B400011922A95E9F7089508950C94A4150C9410
:102B5000A415CF930E94A7150E94B4050E94A51545
:102B6000C0E08C2F0E941505811104C0CF5FC830D2
:102B7000C1F701C081E0CF9108950C94A4150C9485
:102B8000BD150E94BF158091DF01843049F110927C
:102B9000B70120E488E190E00FB6F894A8958093FF
:102BA00060000FBE2093600080E00E94CD020E9472
:102BB000BF1583B7817F846083BF83B7816083BF84
:102BC0007894889583B78E7F83BF0FB6F894A895C5
:102BD00080916000886180936000109260000FBE59
:102BE00008950C94A4150E94330E0E94390A0E9485
:102BF000CD020C94F1151F920F920FB60F92112473
:102C00008F939F93AF93BF938091B701811113C0AE
:102C10008091D5019091D601A091D701B091D801B2
:102C20004196A11DB11D8093D5019093D601A0932B
:102C3000D701B093D801BF91AF919F918F910F9021
:102C40000FBE0F901F90189582E084BD93E095BD54
:102C50009AEF97BD80936E0008952FB7F8948091F6
:102C6000D5019091D601A091D701B091D8012FBF85
:102C700008959C014FB7F8948091D5019091D601A9
:102C8000A091D701B091D8014FBF821B930B08953B
:102C900078941F920F920FB60F9211248F939F93E7
:102CA000AF93BF938091D5019091D601A091D701A8
:102CB000B091D8010196A11DB11D8093D5019093CB
:102CC000D601A093D701B093D801BF91AF919F9146
:102CD0008F910F900FBE0F901F90189587E797E781
:102CE00090930108809300089AE088E10FB6F89469
:102CF000A895809360000FBE90936000FFCF0E9464
:102D0000B014811102C00E9450150E94BB14809320
:102D1000B6010E94C3149093DA018093D9010E94F6
:102D2000BF14682F70E080E090E00C94291280912D
:102D3000C001089508950895CF93DF93EC010E9498
:102D40003C18823011F0843039F581E08093E9003D
:102D50008FEF9091E800815095FD06C095ED9A9512
:102D6000F1F700008111F5CF8091E80085FF14C0D4
:102D700040E050E068E070E0CE010E945918809178
:102D8000E8008E778093E80088E0FE01A8EBB1E0D0
:102D900001900D928A95E1F7DF91CF910895089502
:102DA0008091DE01811109C00E94EA190E94471A30
:102DB0008091E20084608093E20008951092DE0129
:102DC0000895089508950C94F31542E061EC81E0B4
:102DD0000C9463198091E101833009F460C030F4F0
:102DE000813071F0823009F499C008958A3009F475
:102DF00085C08B3009F46BC0893009F0A7C020C0B2
:102E00008091E001813A09F0A1C08091E800877FBC
:102E10008093E8008091E4019091E501892B21F4F1
:102E200068E088EB91E003C060E080E090E070E053
:102E30000E94A4188091E8008B778093E8000895A1
:102E40008091E001813209F081C08091E40190918C
:102E5000E501892B09F07AC08091E800877F809393
:102E6000E8008091E80082FD05C08091DF018111BA
:102E7000F8CF6CC02091F3008091F20090E0922B8B
:102E8000029729F48091F1008B7F813021F48091A9
:102E9000F1008093C0018091E8008B7753C080914E
:102EA000E001813A09F052C08091E4019091E5017E
:102EB000892B09F04BC08091E800877F8093E80060
:102EC0008091E80080FFFCCF8091150136C0809191
:102ED000E0018132D9F58091E4019091E501892BDF
:102EE000A9F58091E800877F8093E8000E949819F7
:102EF0008091E201809315010C94330E8091E001E2
:102F0000813221F58091E800877F8093E8000E945C
:102F100098198091E3018093C10108958091E001A7
:102F2000813AA1F48091E800877F8093E800809146
:102F3000E80080FFFCCF8091C1018093F100809177
:102F4000E8008E778093E8000C949819089584B770
:102F5000877F84BF0FB6F894A89580916000886140
:102F600080936000109260000FBE90E080E80FB682
:102F7000F89480936100909361000FBE0E948C0AC8
:102F80000E94EA190E94471A8091E20084608093AF
:102F9000E20078940E94DC1C0E94940A8BE091E08D
:102FA0000E94340A8091DF01853069F40E94C115C6
:102FB0008091DD018823B1F30E94A915882391F344
:102FC0000E944318EFCF0E949C0AECCF0C94E817A4
:102FD000292F332723303105C1F058F42130310532
:102FE00079F022303105C1F582E290E02AEC33E03D
:102FF00037C02132310511F12232310531F12CC0B7
:1030000082E190E02CEE33E02BC0992781309105CE
:1030100061F040F08230910559F00397E9F4ECE952
:10302000F3E008C0E6ECF3E005C0E0EBF3E002C03B
:10303000E2EAF3E0849190E09F0112C0672B61F413
:1030400089E090E02CED33E00BC0672B29F480E49D
:1030500090E02EEF33E004C080E090E020E030E02C
:10306000FA013183208308958091DF01843011F0CB
:1030700081E0089582E008958091C201811102C02B
:103080000C943418089580E189BD82E189BD09B4AA
:1030900000FEFDCF8091D8008F7D8093D800809175
:1030A000E00082608093E0008091E00081FDFCCF31
:1030B0000895CF92DF92EF92FF920F931F93CF93D9
:1030C000DF93EC018B017A010E94B719811133C0A3
:1030D000E114F10439F0F70180819181081B190B8B
:1030E000C80FD91FC12CD12C0115110519F18091E0
:1030F000E80085FD16C08091E8008E778093E80097
:10310000E114F10449F0F70180819181C80ED91EC4
:10311000D182C08285E00FC00E94B719882321F3B5
:103120000AC089918093F10001501109FFEFCF1A75
:10313000DF0ADACF80E0DF91CF911F910F91FF90EE
:10314000EF90DF90CF9008952091E6013091E70154
:103150002617370748F06115710539F42091E8000A
:103160002E772093E80001C0B901FC0120E0611531
:10317000710579F18091DF018823F1F18530F1F15A
:103180008091E80083FD3CC08091E80082FD2EC064
:103190008091E80080FFEBCF2091F3008091F20056
:1031A00090E0922B6115710551F08830910538F44B
:1031B00021912093F100615071090196F3CF21E034
:1031C000089709F020E08091E8008E778093E8006E
:1031D000CECF2111CFCF0AC08091DF01882361F0CB
:1031E000853061F08091E80083FD0AC08091E8009D
:1031F00082FFF2CF80E0089582E0089583E0089591
:1032000081E008952091E6013091E7012617370704
:1032100048F06115710539F42091E8002E7720936C
:10322000E80001C0B901FC0120E06115710591F1D0
:103230008091DF01882309F440C0853009F43FC044
:103240008091E80083FD3DC08091E80082FD2FC0A1
:103250008091E80080FFE9CF2091F3008091F20097
:1032600090E0922B6115710559F08830910540F47A
:1032700024912093F1003196615071090196F2CFAB
:1032800021E0089709F020E08091E8008E77809394
:10329000E800CBCF2111CCCF0AC08091DF01882379
:1032A00061F0853061F08091E80083FD0AC0809173
:1032B000E80082FFF2CF80E0089582E0089583E085
:1032C000089581E00895982F973068F59093E9006C
:1032D000981739F07091EC002091ED005091F000BA
:1032E00003C0242F762F50E021FD02C09F5FECCF5A
:1032F0003091EB003E7F3093EB003091ED003D7F4D
:103300003093ED003091EB0031603093EB0070931F
:10331000EC002093ED005093F0002091EE0027FD8B
:10332000E5CF80E008958F708093E90081E00895F3
:103330008091E00187FF11C08091E80082FD05C007
:103340008091DF018111F8CF11C08091E8008B7767
:103350000BC08091DF01882349F08091E80080FF55
:10336000F8CF8091E8008E778093E800089520914F
:10337000E4003091E50095E64091EC00842F8170E7
:1033800040FF23C08091E80080FD1DC08091DF01D7
:10339000882399F0853099F08091EB0085FD11C06C
:1033A0004091E4005091E5002417350729F391502E
:1033B00011F09A01E1CF84E0089582E0089583E05E
:1033C000089581E0089580E008954091E80042FF6B
:1033D000DDCF08950E94581A0E94601AE0EEF0E0D6
:1033E000808181608083E8EDF0E080818F77808349
:1033F00019BCA7EDB0E08C918E7F8C9380818F7E7D
:1034000080831092DE0108950F931F93CF93DF9373
:103410000E94581A0E94601AC8EDD0E088818F7708
:10342000888388818068888388818F7D888319BCA0
:103430001092DF011092DB011092DD011092DC018D
:1034400000EE10E0F80180818B7F808388818160AD
:10345000888342E060E080E00E946319E1EEF0E0E2
:1034600080818E7F8083E2EEF0E0808181608083C6
:10347000808188608083F80180818E7F808388814D
:1034800080618883DF91CF911F910F910895E8EDBE
:10349000F0E080818F7E8083E7EDF0E080818160C5
:1034A000808384E082BF81E08093DE010C94041A63
:1034B000E8EDF0E080818E7F80831092E200089535
:1034C0001092DA001092E10008951F920F920FB649
:1034D0000F9211242F933F934F935F936F937F939A
:1034E0008F939F93AF93BF93EF93FF938091E100EE
:1034F00082FF0BC08091E20082FF07C08091E10053
:103500008B7F8093E1000E94DB1C8091DA0080FFBA
:103510001FC08091D80080FF1BC08091DA008E7F91
:103520008093DA008091D90080FF0DC080E189BDD1
:1035300082E189BD09B400FEFDCF81E08093DF0107
:103540000E94D01605C019BC1092DF010E94DE1641
:103550008091E10080FF19C08091E20080FF15C0DA
:103560008091E2008E7F8093E2008091E200806192
:103570008093E2008091D80080628093D80019BCCB
:1035800085E08093DF010E94E2168091E10084FFD4
:1035900030C08091E20084FF2CC080E189BD82E1CF
:1035A00089BD09B400FEFDCF8091D8008F7D809346
:1035B000D8008091E1008F7E8093E1008091E2004D
:1035C0008F7E8093E2008091E20081608093E20030
:1035D0008091DB01882311F084E007C08091E30033
:1035E00087FD02C081E001C083E08093DF010E947B
:1035F000E3168091E10083FF29C08091E20083FF00
:1036000025C08091E100877F8093E10082E0809374
:10361000DF011092DB018091E1008E7F8093E10059
:103620008091E2008E7F8093E2008091E2008061D1
:103630008093E20042E060E080E00E9463198091A4
:10364000F00088608093F0000E94E116FF91EF91F6
:10365000BF91AF919F918F917F916F915F914F91AA
:103660003F912F910F900FBE0F901F9018951F92B2
:103670000F920FB60F9211242F933F934F935F93A6
:103680006F937F938F939F93AF93BF93CF93DF936A
:10369000EF93FF93C091E900CF708091EC00D82F99
:1036A000D17080FDD0E81092E9008091F000877F12
:1036B0008093F00078940E947B1B1092E900809127
:1036C000F00088608093F000CD2BCF70C093E900AC
:1036D000FF91EF91DF91CF91BF91AF919F918F912A
:1036E0007F916F915F914F913F912F910F900FBEFE
:1036F0000F901F9018951F93CF93DF93CDB7DEB730
:10370000AA970FB6F894DEBF0FBECDBFE0EEF1E092
:103710008091F100819321E0E83EF207C9F70E9411
:10372000EA168091E80083FF2EC18091E00190911C
:10373000E101492F50E04A30510508F024C1FA0157
:10374000EC58FF4F0C94F71C803821F0823809F0B8
:103750001AC108C08091DC019091DD01992389F0A4
:1037600082600FC08091E4018F70873008F00BC138
:103770008093E9008091EB0085FB882780F9109207
:10378000E9009091E800977F9093E8008093F10022
:103790001092F100D1C0282F2D7F09F0F4C08823AA
:1037A00019F0823061F0EFC08091E201813009F0C0
:1037B000EAC0933009F080E08093DD012EC0809153
:1037C000E20181112AC08091E4018F702FEF280F50
:1037D000263008F0D8C08093E9002091EB0020FF4C
:1037E0001CC0933021F48091EB00806214C0909152
:1037F000EB0090619093EB0021E030E0A90102C062
:10380000440F551F8A95E2F74093EA001092EA00B0
:103810008091EB0088608093EB001092E90080912A
:10382000E800877F8093E8000E949819ACC081115E
:10383000AAC01091E2011F778091E3008078812B6C
:103840008093E3008091E800877F8093E8000E94E6
:1038500098198091E80080FFFCCF8091E300806898
:103860008093E300111102C082E001C083E08093E5
:10387000DF0189C08058823008F085C08091E20164
:103880009091E3018C3D53E0950779F583E08A83BD
:103890008AE289834FB7F894DE01139620E03EE078
:1038A00051E2E32FF0E050935700E49120FF03C072
:1038B000E295EF703F5FEF708E2F90E0EA3010F0EE
:1038C000C79601C0C0968D939D932F5F243149F711
:1038D0004FBF8091E800877F8093E8006AE270E044
:1038E000CE0101960E94A41816C06091E401709167
:1038F000E501AE014F5F5F4F0E94E617BC01892BC7
:1039000009F441C09091E800977F9093E800898185
:103910009A810E9402198091E8008B778093E800D9
:1039200032C0803881F58091E800877F8093E8007D
:103930008091DB018093F1008091E8008E7772CF57
:10394000811121C08091E2019091E30199270297B2
:10395000D4F48091E800877F8093E8008091E201B1
:103960008093DB010E9498198091DB01811106C0D0
:103970008091E30087FD02C081E001C084E0809374
:10398000DF010E94E5168091E80083FF0AC0809164
:10399000E800877F8093E8008091EB00806280934D
:1039A000EB00AA960FB6F894DEBF0FBECDBFDF9135
:1039B000CF911F9108950895CF938091DF018823BF
:1039C000A1F0C091E900CF709091EC00892F817037
:1039D00090FD80E8C82B1092E9008091E80083FDFB
:1039E0000E947B1BCF70C093E900CF910895EE0F2A
:1039F000FF1F0590F491E02D0994F999FECF92BD37
:103A000081BDF89A992780B50895A8E1B0E042E019
:103A100050E00C94311D262FF999FECF92BD81BD47
:103A2000F89A019700B4021639F01FBA20BD0FB6FC
:103A3000F894FA9AF99A0FBE08950396272F0E94D8
:103A40000C1D0E940B1D252F0E940C1D242F0C9471
:103A50000C1D0196272F0E940C1D0C940B1DDC01E0
:103A6000CB01FC01F999FECF06C0F2BDE1BDF89A89
:103A7000319600B40D9241505040B8F70895F89433
:023A8000FFCF76
:103A8200012B01002C01042C01AB0197169C169A04
:103A920016CF169B1601F4F5F6F73133329466977A
:063AA200C6000000000058
:00000001FF

View file

@ -0,0 +1,323 @@
{
"version":1,
"notes":"",
"documentation":"\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
"keyboard":"pinky/3",
"keymap":"pinky_3_layout_mine",
"layout":"LAYOUT",
"layers":[
[
"C_S_T(KC_TAB)",
"KC_Q",
"KC_W",
"KC_E",
"KC_R",
"KC_T",
"KC_LBRC",
"KC_RBRC",
"KC_Y",
"KC_U",
"KC_I",
"KC_O",
"KC_P",
"KC_BSPC",
"LCTL_T(KC_ESC)",
"KC_A",
"KC_S",
"KC_D",
"KC_F",
"KC_G",
"KC_LPRN",
"KC_RPRN",
"KC_H",
"KC_J",
"KC_K",
"KC_L",
"KC_SCLN",
"KC_QUOT",
"LSFT_T(KC_LPRN)",
"KC_Z",
"KC_X",
"KC_C",
"KC_V",
"KC_B",
"TO(3)",
"TO(1)",
"KC_N",
"KC_M",
"KC_COMM",
"KC_DOT",
"KC_SLSH",
"KC_ENT",
"KC_LALT",
"KC_LGUI",
"TO(2)",
"KC_INS",
"TO(4)",
"KC_SPC",
"KC_PSCR",
"TO(5)"
],
[
"KC_TAB",
"KC_LT",
"KC_UP",
"KC_GT",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_SLSH",
"KC_7",
"KC_8",
"KC_9",
"KC_PLUS",
"KC_BSPC",
"KC_ESC",
"KC_LEFT",
"KC_DOWN",
"KC_RGHT",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_CIRC",
"KC_ASTR",
"KC_4",
"KC_5",
"KC_6",
"KC_MINS",
"KC_PERC",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_CALC",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_TRNS",
"KC_0",
"KC_1",
"KC_2",
"KC_3",
"KC_EQL",
"KC_ENT",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_DEL",
"KC_BSPC",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_PGDN",
"KC_HOME",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_LEFT",
"KC_DOWN",
"KC_UP",
"KC_RGHT",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_PGUP",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_TRNS",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO"
],
[
"KC_GRV",
"KC_EXLM",
"KC_AT",
"KC_HASH",
"KC_DLR",
"KC_PERC",
"KC_NO",
"KC_NO",
"KC_CIRC",
"KC_AMPR",
"KC_ASTR",
"KC_F11",
"KC_F12",
"KC_UNDS",
"KC_NO",
"KC_F1",
"KC_F2",
"KC_F3",
"KC_F4",
"KC_F5",
"KC_NO",
"KC_NO",
"KC_F6",
"KC_F7",
"KC_F8",
"KC_F9",
"KC_F10",
"KC_BSLS",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_TRNS",
"KC_NO",
"KC_NO",
"KC_NO"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_BRIU",
"KC_NO",
"KC_NO",
"KC_MPLY",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_BRID",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_MPRV",
"KC_VOLD",
"KC_VOLU",
"KC_MNXT",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_MUTE",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_TRNS",
"KC_NO",
"KC_NO",
"KC_NO"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_TRNS"
]
],
"author":"Ian Keane"
}

View file

@ -39,3 +39,6 @@ bind a resize-pane -Z
# Shift arrow to switch windows # Shift arrow to switch windows
bind -n C-S-Space previous-window bind -n C-S-Space previous-window
bind -n C-Space next-window bind -n C-Space next-window
# Remove escape delay
set -s escape-time 0

View file

@ -109,3 +109,8 @@ Tmux
TODO YCM TODO YCM
<leader>gd goto definition <leader>gd goto definition
Help Navigation
follow link: ctrl-]
previous link: ctrl-t
or ctrl-o

View file

@ -110,6 +110,8 @@
set winminheight=10 " Hard minimum window height (inactive) set winminheight=10 " Hard minimum window height (inactive)
set winwidth=80 " Window width for current window set winwidth=80 " Window width for current window
set winminwidth=30 " Hard minimum for window width set winminwidth=30 " Hard minimum for window width
set timeoutlen=1000
set ttimeoutlen=0
"}}} "}}}

418
vim/_vimrc Normal file
View file

@ -0,0 +1,418 @@
" vim-plug {{{
" Automatic installation
" if empty(glob('~/.vim/autoload/plug.vim'))
" silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
" \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
" autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
" endif
call plug#begin('~/.vim/plugins')
Plug 'junegunn/vim-easy-align'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin --all' }
Plug 'junegunn/fzf.vim'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'w0rp/ale'
Plug 'airblade/vim-gitgutter'
Plug 'itchyny/lightline.vim'
Plug 'tpope/vim-repeat'
Plug 'haya14busa/incsearch.vim'
Plug 'gorodinskiy/vim-coloresque'
Plug 'sheerun/vim-polyglot'
Plug 'nvie/vim-flake8'
Plug 'KKPMW/sacredforest-vim'
Plug 'wolf-dog/lightline-sceaduhelm.vim'
" Plug 'unblevable/quick-scope'
Plug 'tpope/vim-fugitive'
" Plug 'l04m33/vlime', {'rtp': 'vim/'}
" Plug 'kovisoft/paredit'
Plug 'sainnhe/vim-color-forest-night'
Plug 'justinmk/vim-sneak'
Plug 'axvr/zepl.vim'
Plug 'kovisoft/slimv'
Plug 'tpope/vim-vinegar'
Plug 'preservim/nerdtree'
Plug 'vimwiki/vimwiki'
Plug 'simnalamburt/vim-mundo'
Plug 'tpope/vim-dadbod'
Plug 'junegunn/gv.vim'
Plug 'rbong/vim-flog'
" Todo:
" GV
" Gundo (or undotree?)
" Emmett
" Fugitive
" Vimwiki
" Plug 'ryanss/vim-hackernews'
" Plug 'mbbill/undotree' or Plug 'sjl/gundo.vim'
" Plug 'tpope/vim-projectionist'
" Plug 'mileszs/ack.vim'
" Plug 'vim-pandoc/vim-pandoc'
" Plug 'alfredodeza/pytest.vim'
" Plug 'docker/docker'
" Plug vim-scripts/indentpython.vim
"
call plug#end()
"}}}
" appearance {{{
colorscheme zenburn
syntax on " Enable syntax
filetype plugin on
set encoding=utf-8 " Keep utf-8 encoding
set scrolloff=2 " Keep at least 3 lines above and below cursor
set showmode " Something something buffers
set showcmd " Show command in bottom bar
set wildmenu " Visual autocomplete for command menu
set wildmode=list:longest " Show all completions on tab
set laststatus=2 " Last window will always have statusline
set showmatch " Highlight matching [{()}]
set cursorline " Highlight current line
" remove underline on current line number
hi CursorLineNr cterm=bold
" Lightline
let g:lightline = { 'colorscheme': 'sceaduhelm' }
set fillchars+=vert:│
command! LightlineReload call LightlineReload()
function! LightlineReload()
call lightline#init()
call lightline#colorscheme()
call lightline#update()
endfunction
" }}}
" Movement {{{
" TODO: map alt-j and k to move text lines vertically, maintaining indent
" }}}
" Folding {{{
set foldenable " Enable folding
set foldmethod=marker " Fold sections by marker
set foldlevel=0 " Fold by default
set modelines=1 " Check final line of file for modeline
" }}}
" behavior {{{
set nocompatible " Turn off vi compatability nonsense
set hidden " Hide buffer when opening new file
set visualbell " Use visual bell instead of beeping
set ttyfast " Improves smoothness and drawing
set backspace=indent,eol,start " Always allow backspacing
set undofile " Make .un file for persistent undo
set relativenumber " Make numbers relative to current line
set lazyredraw " Redraw only when necessary
set updatetime=100 " Make updates happen faster (gitgutter)
set splitright " Make split to right by default
set splitbelow
set winheight=30 " Soft minimum window height (active)
"set winminheight=10 " Hard minimum window height (inactive)
set winwidth=85 " Window width for current window
set winminwidth=30 " Hard minimum for window width
set t_vb= " No visual bell ever
let g:sneak#use_ic_scs=1
set virtualedit=block
"}}}
" searching {{{
set gdefault " Remove default g flag on search
set ignorecase " Ignore case for searches
set smartcase " Case-specific only when uppercase
set hlsearch " Don't continue to highlight searched phrases.
set incsearch " But do search as characters are entered
" Remap tab to jump by brackets
" Nnoremap <tab> %
" Vnoremap <tab> %
" Remap tab to jump by window
"}}}
" tab settings {{{
set tabstop=4 " Number of visual spaces per tab
set softtabstop=4 " Should always = tabstop
set shiftwidth=4 " Indent/outdent by 4 columns
set expandtab " Tabs are spaces
set shiftround " Always indent/outdent to the nearest tabstop
" Make search terms more visible
highlight Visual ctermbg=DarkGreen ctermfg=Black
set autoindent " Auto indentation
"}}}
" ruler settings {{{
set rulerformat=%l,%-2v\|%4L\ Lines " Display line, column, and total lines
set ruler " Turn on ruler
"}}}
" long line handling {{{
" set textwidth=79
" set fo=t
" set colorcolumn=85
"}}}
" leaders {{{
:let mapleader = ","
" Clear search highlighting with leader-space
nnoremap <leader><space> :noh<cr>
" Underline with line of the same length
nnoremap <leader>- yypv$r-
" Insert date on current line
nnoremap <leader>d k :r !date <cr>
nnoremap <leader>k :vert new ~/.vim/bindings.md <cr>
"}}}
" invisible characters {{{
set list
set listchars=tab:▸\ ,eol
"}}}
" hjkl {{{
" Disable arrow keys in normal and visual mode
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
" Disable h and l
" nnoremap h <nop>
" nnoremap l <nop>
" Make j and k move by screen line, not file line
nnoremap j gj
nnoremap k gk
"}}}
" slimv{{{
let g:slimv_repl_split=2
let g:slimv_repl_split_size=10
"
"}}}
" split pane navigation {{{
" Map vertical split to \ w, switch to it, open explorer, prompt for filename
" TODO: make new window prompt use fzf
" nnoremap <leader>w <C-w>v<C-w>l:e <C-S-d><BS><BS>open
" Switch panes wit ctrl + h/j/k/l
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-c> :close <cr>
nnoremap <C-n> :bn <cr>
" Term mode
tnoremap <C-h> <C-w>h
tnoremap <C-j> <C-w>j
tnoremap <C-k> <C-w>k
tnoremap <C-l> <C-w>l
tnoremap <C-c> :close <cr>
tnoremap <C-n> :bn <cr>
tnoremap <Esc> <C-\><C-n>
" TODO: remap pane resize to something else (leader?)
" quick-scope
" Trigger a highlight in the appropriate direction when pressing these keys:
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
augroup qs_colors
autocmd!
autocmd ColorScheme * highlight QuickScopePrimary guifg='#afff5f' gui=underline ctermfg=155 cterm=underline
autocmd ColorScheme * highlight QuickScopeSecondary guifg='#5fffff' gui=underline ctermfg=81 cterm=underline
augroup END
nnoremap <c-s> gt
"}}}
" file specific {{{
" In markdown files, when writing add two spaces to each line to fix spacing
" In compiled version
" au BufWritePost *.md silent! %s/[^ ]\zs$/\1 /
" TODO: find a better solution
" Bold something in a markdown file
" :au FileType markdown nmap <leader>b i**<esc>ea**<esc>b
" Python
" au BufNewFile,BufRead *.py
"\ set tabstop=4
"\ set softtabstop=4
"\ set shiftwidth=4
"\ set textwidth=79
"\ set expandtab
"\ set autoindent
"\ set fileformat=unix
"" Webdev
" au BufNewFile,BufRead *.js, *.html, *.css
"\ set tabstop=2
"\ set softtabstop=2
"\ set shiftwidth=2
"}}}
" plugin modification {{{
" FZF
map <C-p> :FZF<cr>
" This is the default extra key bindings
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
" Default fzf layout
" - down / up / left / right
let g:fzf_layout = { 'down': '~30%' }
" Customize fzf colors to match your color scheme
let g:fzf_colors =
\ { 'fg': [ 'fg', 'Normal'],
\ 'bg': [ 'bg', 'Normal'],
\ 'hl': [ 'fg', 'Comment'],
\ 'fg+': [ 'fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': [ 'bg', 'CursorLine', 'CursorColumn'],
\ 'hl+': [ 'fg', 'Statement'],
\ 'info': [ 'fg', 'PreProc'],
\ 'border': [ 'fg', 'Ignore'],
\ 'prompt': [ 'fg', 'Conditional'],
\ 'pointer': [ 'fg', 'Exception'],
\ 'marker': [ 'fg', 'Keyword'],
\ 'spinner': [ 'fg', 'Label'],
\ 'header': [ 'fg', 'Comment'] }
" EasyAlign
"" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)
"}}}
" git commands {{{
" TODO: map fugitive commands
" TODO: check out gv etc
" TODO: bind hunk committing
" Gitgutter hunk view
nmap ghv <Plug>(GitGutterPreviewHunk)
nmap ghn <Plug>(GitGutterNextHunk)
nmap ghp <Plug>(GitGutterPrevHunk)
nmap ghf <Plug>(GitGutterFold)
"}}}
" fold search {{{
" command to fold everything except what you searched for
command! -nargs=* Fs
\ if <q-args> != '' |
\ exe "normal /".<q-args>."\<CR>" |
\ endif |
\ if @/ != '' |
\ setlocal
\ foldexpr=FoldRegex(v:lnum,@/,2)
\ foldmethod=expr
\ foldlevel=0 |
\ endif
function! FoldRegex(lnum,pat,context)
" get start/end positions for context lines
let startline=a:lnum-a:context
while startline < 1
let startline+=1
endwhile
let endline=a:lnum+a:context
while endline > line('$')
let endline-=1
endwhile
let returnval = 2
let pos=getpos('.')
" search from current line to get matches ON the line
call cursor(a:lnum, 1)
let matchline=search(a:pat,'cW',endline)
if matchline==a:lnum
let returnval = 0
elseif matchline > 0
" if current line didn't match, there could have been a match within
" trailing context lines
let returnval = 1
else
" if no match at current line, search leading context lines for a match
call cursor(startline, 1)
let matchline=search(a:pat,'cW',a:lnum)
if matchline > 0
let returnval = 1
endif
endif
call setpos('.',pos)
return returnval
endfun
" }}}
" copy matches {{{
function! CopyMatches(reg)
let hits = []
%s//\=len(add(hits, submatch(0))) ? submatch(0) : ''/gne
let reg = empty(a:reg) ? '+' : a:reg
execute 'let @'.reg.' = join(hits, "\n") . "\n"'
endfunction
command! -register CopyMatches call CopyMatches(<q-reg>)
" }}}
" vimrc {{{
" source $MYVIMRC reloads the saved $MYVIMRC
:nmap <Leader>s :source $MYVIMRC
" opens $MYVIMRC for editing, or use :tabedit $MYVIMRC
:nmap <Leader>v :e $MYVIMRC
"}}}
" gvim {{{
set guioptions=Ace
set guifont=Consolas:h11
" set guifont=Bitstream\ Vera\ Sans\ Mono
set guioptions-=e
set pythondll=python27.dll
"}}}
" zepl {{{
augroup zepl
autocmd!
autocmd FileType python let b:repl_config = { 'cmd': 'python3' }
autocmd FileType javascript let b:repl_config = { 'cmd': 'python3' }
autocmd FileType clojure let b:repl_config = { 'cmd': 'clj' }
autocmd FileType scheme let b:repl_config = { 'cmd': 'rlwrap csi' }
autocmd FileType lisp let b:repl_config = { 'cmd': 'sbcl' }
autocmd FileType julia let b:repl_config = { 'cmd': 'julia' }
" autocmd FileType cs let b:repl_config = { 'cmd': '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"' }
autocmd FileType cs let b:repl_config = { 'cmd': 'cmd' }
augroup END
"}}}
" folding options, this must be last in file
" vim:foldmethod=marker:foldlevel=0