Permalänk
Medlem

Advanced VIM

Försöker bli effektivare i VIM med hjälp av bland annat "autocomplete" och sitta och plugga hotkeys såklart

Jag tänker fråga er lite om användbara tips, vad använder ni er av för att sparar tid?

Min vimrc:

syntax on set bs=2 set tabstop=2 set ai set number "autocomplete mha <tab> fun! InsertTabWrapper() let col = col('.') - 1 if !col || getline('.')[col - 1] !~ '\k' return "\<tab>" else return "\<c-p>" endif endfun inoremap <tab> <c-r>=InsertTabWrapper()<cr> set dictionary=.vimdict set dictionary+=% set iskeyword+=: set complete+=k

Något jag saknar som är bra att ha?

När jag använder autocomplete-funktionen så letar den igenom både sidan jag skriver och min dict-fil, kan man få så att den bara litar i min dict-fil alt. att alternativet i min dict-fil kommer upp först?
Ex:

(Här har jag skrivit m<tab>)

Ja, jag vet att det finns massa andra fina editors som klarar allt mycket enklare, typ Textmate, men trivs i vim.

Något mer ni vill tilllägga för att göra min vardag enklare att leva?
(Jag väntar på en fortsättning av din lilla guide m0REc )

Over and out!
-Simon

Visa signatur

Behind every great fortune there is a crime. - Honoré de Balzac
simonb @ irc

Permalänk
Medlem

Så här ser min .vimrc ut, har inte ändrat den på jätte länge, kanske dags :).

syntax on set ruler " Show the line and column number of the cursor position set ts=4 "set softtabstop=4 "set expandtab set visualbell " Blink instead of beep set cindent " Obvious, sets c-code indent set hlsearch " Highlight search set nocp " Use Vim mode, not compatible set showcmd " Show command in status line set nu " Show line numbers to the left set textwidth=80 " Set maximum length of a row set list " Display unprintable characters whit '^' " Show the first "character" in a tab as '>' and fill the rest whit '-' " Show trailing spaces as '#' set listchars=tab:>-,trail:# ab #i #include "if using a version 6 vim, enable folding if version >= 600 set foldenable set foldmethod=marker endif filetype plugin on colorscheme darkblue " Colour settings if has("filetype") set autoindent endif

EDIT: En bild kanske vore passande.

Permalänk
Hedersmedlem

Eftersom att jag numera arbetar med programmering så har de flesta modifikationerna till min .(g)vimrc tillkommit på jobbet. Fixar upp den imorgon.

Men kort sagt så använder jag aldrig någon form av completion, föredrar att hålla saker i huvudet. Jag har dock börjat ändra mitt sätt att jobba lite i och med introduceringen av tabbar i Vim.
På jobbet kodar jag för närvarande mycket C så det brukar sluta med att varje tab innehåller en rad fönster med filer som hör ihop (en C-fil och en header-fil som enklaste exempel).

En annan sak jag har börjat använda är så kallade sessions, när man har lagt upp en layout (ett antal tabbar och fönster) man gillar och som man kommer att behöva gå tillbaka till kör man

:mks(ession)

En fil vid namn Session.vim skapas då och kan laddas med

$ vim -S [Session.vim] # fil-argumentet är inte ett måste

Se

:help mks

för mer information.

Slutligen är det härligt att se att någon läst och dragit nytta av min guide, ska fortsätta skriva på den vid tillfälle, måste tänka igenom vad jag vill ha med till nästa utgåva bara.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

ta en titt på snippetsEmu om du gillar textmate.

Visa signatur

Plan9 fan. In glenda we trust.

Permalänk
Medlem

* -kommandot och reg exp samt makron inspelning (q) har underlättat min vardag med vim avsevärt!

Kodhoppning med hjälp av ctags också.

Permalänk
Medlem

Då vim-"scriptning" känns som ett monster i klass med c++ att lära sig så har jag aldrig orkat sätta mig in i det hela ordentligt, men ett par matnyttiga saker har min vimrc dragit på sig över åren.

func! Toggle_number() if(&number==1) set nonumber else set number endif endfunc map <unique> b :call Toggle_number()<cr> " b för att så av/på numrering av rader " har även liknande för ignorecase/noignorecase vnoremap c :s/^/#/<cr>:nohl<cr>:silent! set hl<cr> vnoremap C :s/^#//<cr>:nohl<cr>:silent! set hl<cr> " c för att kommentera ut ett visual-block " C för att avkommentera. nnoremap <c-n> :bn<cr> nnoremap <c-p> :bp<cr> " ctrl+n / ctrl+p för att hoppa mellan öppnade filer. nnoremap m :make<cr> " m för att köra make " och viktigast av allt map Q :qa!<cr> map <C-c> :q<cr> map <C-d> :qa!<cr> " ctrl+c för att stänga av vim " Q/ctrl+d för att stänga alla filer oavsett om " det finns ändringar som inte har sparats

Permalänk
Citat:

Ursprungligen inskrivet av e5150

func! Toggle_number() if(&number==1) set nonumber else set number endif endfunc map <unique> b :call Toggle_number()<cr> " b för att så av/på numrering av rader " har även liknande för ignorecase/noignorecase

:set nu! "Togglar number :set ignorecase! "Togglar ignorecase

att lägga till ett ! på slutet för att "toggla" funkar med många andra set saker också.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av sebbe1991

:set nu! "Togglar number :set ignorecase! "Togglar ignorecase

att lägga till ett ! på slutet för att "toggla" funkar med många andra set saker också.

Ah, nice! Jag tyckte att det kändes overkill med funktionerna, men orkade aldrig hitta någon bättre lösning när jag väl hade fått det att fungera. Tack iaf.

Permalänk
Hedersmedlem

Sådär ja, då var man äntligen frisk igen och är tillbaka på jobbet.

Eftersom att jag för närvarande gör ett uppdrag på Ericsson arbetas det mycket med ClearCase så jag använder mig av ccase.vim för att förenkla hanteringen lite.
Ett annat skript som används flitigt är OMLet eftersom då jag håller O'Caml som favoritspråk och utvecklar mycket i det, OMLet ger en schysst indentering jämfört med den som följer med Vim (det är prat om att OMLet ska ersätta orginal-indenteringen så småningom).

Som färgtema för gVim använder jag Zenburn vilket jag finner mycket trevligt för ögonen under längre kodperioder i både ljust och mörkt rum.

Mina konfigurationsfiler:
.vimrc
.gvimrc

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Bumpar denna tråd då jag tycker den innehåller många bra & nyttiga saker Kan bidra med ett tips för hur man lägger in sitt nerladdade färgtema i vim, då jag själv hade problem med det:

lägg .vim filen i mappen

~/.vim/colors

(om mapparna inte existerar så är det bara att skapa dom)
Lägg sedan till denna raden i .vimrc

colorscheme <namnet på din fil>

Permalänk
Medlem

Nice tråd!

Generella tips för att öka effektiviten/produktiviteten i vim är:

Använd en stor widescreenskärm och ställ den vertikalt!
Använd funktionella programmeringsspråk
Dissa Word när det finns LaTeX

Visa signatur

(defmacro lisp-bootstrap (expr) expr)

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av tomasc
Nice tråd!

Generella tips för att öka effektiviten/produktiviteten i vim är:

Använd en stor widescreenskärm och ställ den vertikalt!
Använd funktionella programmeringsspråk
Dissa Word när det finns LaTeX

Nja, widescreen-skärmar på högkant blir lite för höga tycker jag.

Kör man widescreen har man däremot plats med två fina Vim-sessioner bredvid varandra om man kör en vettig fönsterhanterare (WMII/xmonad), annars kan man köra window splits i Vim (vilket också fungerar riktigt bra).

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Vet någon om man kan få igång bash inuti Vim? Dvs, jag öppnar vim, skapar ett nytt fönster (^W osv) men istället för en textfil så kör jag en terminal i det del-fönstret.

Permalänk
Medlem

Movement: skulle du vilja dela med dig av din Terminal.app profil

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av polygon5
Vet någon om man kan få igång bash inuti Vim? Dvs, jag öppnar vim, skapar ett nytt fönster (^W osv) men istället för en textfil så kör jag en terminal i det del-fönstret.

Det verkar krävas en patch. http://www.wana.at/vimshell/
(Google: vim shell window )

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Thomas
Det verkar krävas en patch. http://www.wana.at/vimshell/
(Google: vim shell window )

Ah, tackar. (Uppenbarligen suger jag på att söka smart i google ) Fick det dock inte att funka (måste man installera om vim från source?), men tack iaf

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av polygon5
Ah, tackar. (Uppenbarligen suger jag på att söka smart i google ) Fick det dock inte att funka (måste man installera om vim från source?), men tack iaf

Yes, det finns väl intruktioner på siten eller någon README i guess.
Vim shell kan faktiskt vara rätt användbar men inte allt användbar att bara använda som terminal så det fattas stöd för ett par grejer.

Permalänk
Hedersmedlem

Det går att köra ett shell i Vim, men inte i en split/tabb dessvärre:

:sh

Fungerar dock fint om man lite fort behöver ett shell temporärt.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

funkar fint med te.x

!ls

om man inte skall göra så mycket. Man kan ju dess utom köra

:r !ls

för att klistra in outputen från ett kommando (i detta fallet ls) i sin fil.

Permalänk
Medlem

Hittade denna sidan idag: http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index.html
Trevligt om man letar efter ett färgtema.

Visa signatur

Plan9 fan. In glenda we trust.

Permalänk
Inaktiv
Citat:

Ursprungligen inskrivet av m0REc
Sådär ja, då var man äntligen frisk igen och är tillbaka på jobbet.

Eftersom att jag för närvarande gör ett uppdrag på Ericsson arbetas det mycket med ClearCase så jag använder mig av ccase.vim för att förenkla hanteringen lite.
Ett annat skript som används flitigt är OMLet eftersom då jag håller O'Caml som favoritspråk och utvecklar mycket i det, OMLet ger en schysst indentering jämfört med den som följer med Vim (det är prat om att OMLet ska ersätta orginal-indenteringen så småningom).

Som färgtema för gVim använder jag Zenburn vilket jag finner mycket trevligt för ögonen under längre kodperioder i både ljust och mörkt rum.

Mina konfigurationsfiler:
.vimrc
.gvimrc

Hur fungerar ccase.vim med UCM (sitter också på Ericsson)?

Jag sitter med en 20"-are där en terminal tar upp hela skärmen (ingen fönsterdekoration) på varsin (4 totalt) desktops. Ofta har jag screen igång som delar skärmen i två delar. Jag har inte så mycket jox i min vimrc, det viktigaste är nog att man har ett färgtema som fungerar bra.

Permalänk
Hedersmedlem

Det finns åtminstone stöd för att skapa och sätta aktiviteter, men har inte provat det då jag inte jobbat i någon UCM-miljö än.

EDIT:
Om vi ska styra in tråden lite smått på arbetssätt så jobbar jag ungefär så här:

Hemma
Hemma kör jag en tremonitor-setup med 17" TFT-skärmar (1280x1024). Vanligen har jag Vim uppe på mittenskärmen och blandar tabbar/splits för att täcka de filer jag arbetar med.
Ofta en tabb för varje .c-/.h-filskombination (vilka visas i varsin vertikal split, C-filerna till vänster) när jag jobbar i C, men inte nödvändigt.

På vänsterskärmen brukar jag testa/kompilera kod eller ha dokumentation, men ibland vill man ha lite mer kodyta och då får en Vimsession även täcka upp denna.

Till höger tenderar jag att ha IRC uppe, men ibland hamnar testning av kod eller rent av ren kod på denna skärm också.

Kör Linux med WMII som fönsterhanterare, 10 virtuella skrivbord per skärm.

Jobbet (förut)
På förra uppdraget arbetades det i Linux, även här körde jag WMII med 10 virtuella skrivbord.
Skärmen var en 20" med upplösningen 1600x1200 och jag kan säga att det kändes väldigt trångt när man är van vid att kunna breda ut sig över tre skärmar. Lyckades väl halvbra dock, men saknade jämt och ständigt minst en extra skärm.

I Vim används, precis som hemma, en kombination av tabbar och splits för att hålla koll på den relevanta biten kod jag arbetar på för närvarande.

Jobbet (nu)
Nu jobbar jag visserligen inte med programmering utan som TCM, men det blir ändå en del Vim (mycket saker som automatiseras och hjälpskript av olika slag som skrivs).

Miljön är Windows och jag trivs inte för fem öre. Skärmen är en 24" TFT med en upplösning på 1920x1200 och jag kan direkt säga att skärmen är på tok för stor. Använder även laptopen (14.1", 1280x800) som en sekundärskärm för e-mail.

"Tack vare" Windows extremt dåliga (enligt mig) fönsterhantering tvingas jag numera kompromissa en jävla massa och är långt ifrån lika produktiv som jag är i Linuxmiljö.

Vim används dock på samma sätt som alltid, tabbar och splits i gVim, antingen i fullskärm eller 50% av skärmen, vertikalt delat.
Kör även tredjepartsapplikationer för att få 10 stycken virtuella skrivbord, vilka verkligen behövs, både för Vim och annat.

Hm, nu blev det i och för sig inte så mycket om Vim här... Aja, det får stå.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc

Hemma kör jag en tre monitor-setup med 17" TFT-skärmar (1280x1024). 10 virtuella skrivbord per skärm.

Jäklar alltså, på min macbook 13" har jag 4 virtuella "spaces", varav jag verkligen använder typ 3. Hade tyckt att det skulle bli väldigt svår-överskådligt med så många olika skrivbord.