{"id":84754,"date":"2022-10-07T14:50:42","date_gmt":"2022-10-07T19:50:42","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/"},"modified":"2022-10-07T14:50:42","modified_gmt":"2022-10-07T19:50:42","slug":"hur-man-anvander-vim-en-guide-till-grunderna","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/","title":{"rendered":"Hur man anv\u00e4nder Vim: En guide till grunderna"},"content":{"rendered":"<div>\n<p>Vim \u00e4r den mest kraftfulla och m\u00e5ngsidiga kodredigeraren som finns tillg\u00e4nglig f\u00f6r Unix-liknande system.  Det \u00e4r en f\u00f6rl\u00e4ngning av Vi-redigeraren som utvecklats av Bill Joy.  Vim \u00e4r tillg\u00e4ngligt som standard p\u00e5 de flesta Linux- och BSD-system.<\/p>\n<p>S\u00e5ledes kan du anv\u00e4nda samma editor p\u00e5 alla dina system och fj\u00e4rrmaskiner.  Vims rigor\u00f6sa ordf\u00f6rr\u00e5d g\u00f6r den ocks\u00e5 extremt effektiv och uttrycksfull.<\/p>\n<h2 id=\"how-does-vim-work\"><span class=\"ez-toc-section\" id=\"Hur_fungerar_Vim\"><\/span>  Hur fungerar Vim?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vim skiljer sig fr\u00e5n traditionella Linux-textredigerare.  Det uppr\u00e4tth\u00e5ller Unix-filosofin att g\u00f6ra en sak och g\u00f6ra det r\u00e4tt.  Den grundl\u00e4ggande uppfattningen \u00e4r att vi som programmerare \u00e4gnar det mesta av v\u00e5r tid \u00e5t att redigera kod, inte att skriva den.<\/p>\n<p>Vim tillhandah\u00e5ller flera l\u00e4gen f\u00f6r att hantera detta.  Varje l\u00e4ge g\u00f6r n\u00e5got annorlunda och styrs genom tangenttryckningar.  De v\u00e4sentliga vim-l\u00e4gena \u00e4r normalt l\u00e4ge, visuellt l\u00e4ge, infogningsl\u00e4ge och kommandol\u00e4ge.<\/p>\n<figure>\n<\/figure>\n<p>Vi anv\u00e4nder normalt l\u00e4ge f\u00f6r att granska kod och utf\u00f6ra snabba operationer.  Det visuella l\u00e4get anv\u00e4nds f\u00f6r att markera textavsnitt, och infogningsl\u00e4get \u00e4r d\u00e4r du l\u00e4gger till texter.  Du kommer att anv\u00e4nda kommandol\u00e4get f\u00f6r att skriva in olika vim-kommandon.<\/p>\n<h2 id=\"how-to-use-vim-in-insert-mode\"><span class=\"ez-toc-section\" id=\"Hur_man_anvander_Vim_i_infogningslage\"><\/span>  Hur man anv\u00e4nder Vim i infogningsl\u00e4ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u00e4r du \u00f6ppnar vim startar den i normalt l\u00e4ge.  Du kan v\u00e4xla till infogningsl\u00e4ge genom att \u00f6ppna <strong>i<\/strong> nyckel.  Detta anropar infogningsl\u00e4get vid mark\u00f6rpositionen.  Du b\u00f6r se en indikation i det nedre v\u00e4nstra h\u00f6rnet.<\/p>\n<p>Nu kan du skriva in vilken text som helst, och vim kommer att kopiera dem till bufferten.  F\u00f6r att spara f\u00f6rloppet, v\u00e4xla tillbaka till normalt l\u00e4ge genom att trycka p\u00e5 escape-tangenten <strong><esc\/><\/strong>.  Skriv nu f\u00f6ljande vim-kommando.<\/p>\n<pre>:w<\/pre>\n<p>Det finns andra s\u00e4tt att g\u00e5 in i infogningsl\u00e4get.  Du kan till exempel infoga text precis under den aktuella raden genom att trycka p\u00e5 <strong>o<\/strong> i normalt l\u00e4ge.  Anv\u00e4nda sig av <strong>O<\/strong> f\u00f6r att infoga text ovanf\u00f6r den aktuella raden.<\/p>\n<figure>\n<\/figure>\n<p>Anv\u00e4nda sig av <strong>jag<\/strong> f\u00f6r att infoga text i b\u00f6rjan av den aktuella raden.  Du kan anv\u00e4nda <strong>a<\/strong> f\u00f6r att l\u00e4gga till text direkt efter mark\u00f6ren.  Anv\u00e4nda sig av <strong>A<\/strong> f\u00f6r att l\u00e4gga till text i slutet av raden.<\/p>\n<p>F\u00f6r att spara och avsluta den aktuella filen, v\u00e4xla till kommandol\u00e4ge och skriv f\u00f6ljande.<\/p>\n<pre>:wq<\/pre>\n<h2 id=\"how-to-use-vim-in-normal-mode\"><span class=\"ez-toc-section\" id=\"Hur_man_anvander_Vim_i_normalt_lage\"><\/span>  Hur man anv\u00e4nder Vim i normalt l\u00e4ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vim-anv\u00e4ndare spenderar det mesta av sin tid i normalt l\u00e4ge.  H\u00e4r kan du navigera genom texter och g\u00f6ra snabba redigeringar.  Trycker p\u00e5 escape <strong><esc\/><\/strong> tangent fr\u00e5n valfritt l\u00e4ge tar dig till det normala l\u00e4get.<\/p>\n<p>Ist\u00e4llet f\u00f6r de vanliga piltangenterna anv\u00e4nder vim <strong>hjkl <\/strong>(<strong>h<\/strong> f\u00f6r v\u00e4nster, <strong>j<\/strong> f\u00f6r ner, <strong>k<\/strong> f\u00f6r upp, och <strong>l<\/strong> f\u00f6r h\u00f6ger) f\u00f6r navigering.  Det kan verka kontraproduktivt till en b\u00f6rjan.  Men vim g\u00f6r detta f\u00f6r att spara den tid det tar f\u00f6r anv\u00e4ndare att n\u00e5 piltangenterna \u00f6ver deras tangentbord.<\/p>\n<p>Liksom m\u00e5nga konsolbaserade redakt\u00f6rer uppmuntrar vim ocks\u00e5 anv\u00e4ndare att h\u00e5lla sig borta fr\u00e5n musen.  Du kan dock konfigurera vim f\u00f6r att aktivera musst\u00f6d.<\/p>\n<p>Du kan ocks\u00e5 flytta runt text ord f\u00f6r ord.  Till exempel att trycka <strong>w<\/strong> i normalt l\u00e4ge flyttas mark\u00f6ren till b\u00f6rjan av n\u00e4sta ord.  Du kan flytta till b\u00f6rjan av det aktuella ordet med <strong>b<\/strong> och avsluta via <strong>e<\/strong>.<\/p>\n<figure>\n<\/figure>\n<p>Anv\u00e4nda sig av <strong>0<\/strong> f\u00f6r att navigera till b\u00f6rjan av en rad och <strong>$<\/strong> f\u00f6r att g\u00e5 till slutet.  Br\u00e5dskande <strong>H<\/strong> f\u00e5r mark\u00f6ren till toppen av sk\u00e4rmen, <strong>M<\/strong> till mitten, och <strong>L<\/strong> till botten.  Du kan scrolla upp och ner med <strong>Ctrl+u<\/strong> och <strong>Ctrl+d<\/strong>.  Om du trycker p\u00e5 <strong>gg<\/strong> i normalt l\u00e4ge kommer vim att flytta mark\u00f6ren till toppen.  Stiga p\u00e5 <strong>G<\/strong> att g\u00e5 till slutet.<\/p>\n<p>Du kan l\u00e4ra dig vim-redigeringskommandon n\u00e4r du \u00e4r bekv\u00e4m med att flytta runt i normalt l\u00e4ge.  Anv\u00e4nda sig av <strong>x<\/strong> f\u00f6r att ta bort ett tecken, <strong>s<\/strong> att ers\u00e4tta.  Du raderar texter med hj\u00e4lp av <strong>d<\/strong> operat\u00f6r.  Det tar en motion som argument.  Syntaxen f\u00f6r detta visas nedan.<\/p>\n<pre>d{motion}<\/pre>\n<p>En r\u00f6relse kan vara vad som helst.  Till exempel att trycka <strong>dw<\/strong> i normalt l\u00e4ge raderar det aktuella ordet.  Om du skriver <strong>d$<\/strong>, kommer vim att radera allt till slutet av raden.  P\u00e5 samma s\u00e4tt, att skriva <strong>d0<\/strong> raderar till b\u00f6rjan av raden.  Anv\u00e4nda sig av <strong>dd<\/strong> f\u00f6r att radera hela raden.<\/p>\n<figure>\n<\/figure>\n<p>Du beh\u00f6ver dock inte ta bort n\u00e5got och g\u00e5 in i ers\u00e4ttningsl\u00e4ge f\u00f6r att g\u00f6ra \u00e4ndringar.  De <strong>c<\/strong> operat\u00f6ren l\u00e5ter oss g\u00f6ra \u00e4ndringar i en vim-r\u00f6relse direkt fr\u00e5n normalt l\u00e4ge.<\/p>\n<pre>c{motion}<\/pre>\n<p>S\u00e5 n\u00e4r du trycker <strong>cw<\/strong>, vim tar bort det aktuella ordet och s\u00e4tter dig i infogningsl\u00e4ge.  Mark\u00f6ren m\u00e5ste vara i b\u00f6rjan av ordet eftersom vim kommer att radera fr\u00e5n den aktuella positionen.  Anv\u00e4nda sig av <strong>ciw<\/strong> att komma runt detta.  Detta g\u00f6r \u00e4ndringar i det aktuella ordet.  Anv\u00e4nda sig av <strong>cc<\/strong> f\u00f6r att byta hela raden.<\/p>\n<figure>\n<\/figure>\n<p>Anv\u00e4nda sig av <strong>y<\/strong> f\u00f6r kopiering av r\u00f6relser och <strong>sid<\/strong> f\u00f6r att klistra in dem.  S\u00e5, <strong>yw<\/strong> kopierar det aktuella ordet och <strong>\u00e5\u00e5<\/strong> kopierar hela raden.  Du kan upprepa f\u00f6reg\u00e5ende kommando med hj\u00e4lp av punkten <strong>.<\/strong> operat\u00f6r, \u00e5ngra \u00e4ndringar med hj\u00e4lp av <strong>u<\/strong>, och g\u00f6r om dem med hj\u00e4lp av <strong>Ctrl+r<\/strong>.<\/p>\n<p>Om du vill hitta n\u00e5got i din kod, anv\u00e4nd f\u00f6ljande vim-kommando i Linux.<\/p>\n<pre>\/{regex}<\/pre>\n<p>H\u00e4r \u00e4r regex ett regulj\u00e4rt uttryck.  Tryck <strong>n<\/strong> f\u00f6r att g\u00e5 till n\u00e4sta match och <strong>N<\/strong> f\u00f6r f\u00f6reg\u00e5ende match.<\/p>\n<figure>\n<\/figure>\n<h2 id=\"how-to-use-vim-in-visual-mode\"><span class=\"ez-toc-section\" id=\"Hur_man_anvander_Vim_i_visuellt_lage\"><\/span>  Hur man anv\u00e4nder Vim i visuellt l\u00e4ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Genom att anv\u00e4nda vim i visuellt l\u00e4ge kan vi v\u00e4lja textblock med r\u00f6relsetangenter.  S\u00e5 h\u00e4r flyttar avancerade anv\u00e4ndare kodblock i vim.  Stiga p\u00e5 <strong>v<\/strong> i normalt l\u00e4ge f\u00f6r att v\u00e4xla till det visuella l\u00e4get.<\/p>\n<p>Du kan nu markera delar av text eller kod med hj\u00e4lp av navigeringsknapparna <strong>hjkl<\/strong>.  Anv\u00e4nda sig av <strong>Ctrl+v<\/strong> f\u00f6r att v\u00e4xla till visuellt blockl\u00e4ge.  H\u00e4r kan du v\u00e4lja textblock.  Du kan markera linjer genom att g\u00e5 in i visuellt linjel\u00e4ge.  Anv\u00e4nda sig av <strong>V<\/strong> f\u00f6r att v\u00e4lja visuellt linjel\u00e4ge.<\/p>\n<figure>\n<\/figure>\n<p>Detta g\u00f6r att vi kan g\u00f6ra \u00e4ndringar i ett textblock p\u00e5 en g\u00e5ng.  Du kan till exempel v\u00e4lja ett textblock och trycka p\u00e5 <strong>y<\/strong> f\u00f6r att kopiera texten till vim-bufferten.<\/p>\n<h2 id=\"how-to-use-vim-command-mode\"><span class=\"ez-toc-section\" id=\"Hur_man_anvander_Vim_Command_Mode\"><\/span>  Hur man anv\u00e4nder Vim Command Mode<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vi kan komma \u00e5t kommandol\u00e4get genom att skriva <strong>:<\/strong> i normalt l\u00e4ge.  Det kommer att f\u00f6ra mark\u00f6ren till botten av sk\u00e4rmen, f\u00f6ljt av ett kolon.  Nedan \u00e4r n\u00e5gra av de mest anv\u00e4ndbara vim-kommandona i Linux.<\/p>\n<p>  <strong>:w <\/strong>spara \u00e4ndringar i filen   <strong>:wq <\/strong>spara och avsluta   <strong>:spara som<\/strong> FIL spara den aktuella filen som FIL   <strong>:q<\/strong>  sluta vim   <strong>:q!<\/strong> avsluta och kassera \u00e4ndringar   <strong>:e<\/strong> FIL \u00f6ppna FIL f\u00f6r redigering   <strong>:hj\u00e4lp<\/strong> \u00f6ppen hj\u00e4lp  <\/p>\n<p>Bokm\u00e4rk detta vim-fuskblad f\u00f6r snabb \u00e5tkomst till anv\u00e4ndbara vim-kommandon.<\/p>\n<h2 id=\"mastering-vim-basics\"><span class=\"ez-toc-section\" id=\"Bemastra_Vim_Basics\"><\/span>  Bem\u00e4stra Vim Basics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vim \u00e4r en robust redigerare som eliminerar klyftan mellan t\u00e4nkande och redigering.  Att skriva kod blir mycket mer sp\u00e4nnande n\u00e4r du v\u00e4l \u00e4r skicklig p\u00e5 vim.  \u00c4ven om du beh\u00f6ver m\u00e5nga \u00e5r av \u00f6vning f\u00f6r att bem\u00e4stra det p\u00e5 riktigt, b\u00f6r f\u00f6rst\u00e5else av vim grunderna f\u00e5 dig att komma ig\u00e5ng p\u00e5 r\u00e4tt sp\u00e5r.<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">Rubaiat Hossain (47 artiklar publicerade)<br \/><\/strong><\/p>\n<p>Rubaiat \u00e4r en CS-examen med en stark passion f\u00f6r \u00f6ppen k\u00e4llkod.  F\u00f6rutom att vara en Unix-veteran, \u00e4r han ocks\u00e5 intresserad av n\u00e4tverkss\u00e4kerhet, kryptografi och funktionell programmering.  Han \u00e4r en ivrig samlare av begagnade b\u00f6cker och har en aldrig sinande beundran f\u00f6r klassisk rock.<\/p>\n<p>                            Mer fr\u00e5n Rubaiat Hossain<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Hur_fungerar_Vim\" >Hur fungerar Vim?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Hur_man_anvander_Vim_i_infogningslage\" >Hur man anv\u00e4nder Vim i infogningsl\u00e4ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Hur_man_anvander_Vim_i_normalt_lage\" >Hur man anv\u00e4nder Vim i normalt l\u00e4ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Hur_man_anvander_Vim_i_visuellt_lage\" >Hur man anv\u00e4nder Vim i visuellt l\u00e4ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Hur_man_anvander_Vim_Command_Mode\" >Hur man anv\u00e4nder Vim Command Mode<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Bemastra_Vim_Basics\" >Bem\u00e4stra Vim Basics<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-anvander-vim-en-guide-till-grunderna\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>Vim \u00e4r den mest kraftfulla och m\u00e5ngsidiga kodredigeraren som finns tillg\u00e4nglig f\u00f6r Unix-liknande system. Det \u00e4r en f\u00f6rl\u00e4ngning av Vi-redigeraren som utvecklats av Bill Joy. Vim \u00e4r tillg\u00e4ngligt som standard p\u00e5 de flesta Linux- och BSD-system. S\u00e5ledes kan du anv\u00e4nda samma editor p\u00e5 alla dina system och fj\u00e4rrmaskiner. Vims rigor\u00f6sa ordf\u00f6rr\u00e5d g\u00f6r den ocks\u00e5 extremt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":84755,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[16,31091,487,27,163,43063],"class_list":["post-84754","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-anvander","tag-grunderna","tag-guide","tag-hur","tag-man","tag-vim"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/84754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=84754"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/84754\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/84755"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=84754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=84754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=84754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}