Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7954223
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T03:21:48+00:00 2026-06-04T03:21:48+00:00

In VIM ( edit MacVim snapshot 64), I am looking for a way to

  • 0

In VIM (edit MacVim snapshot 64), I am looking for a way to convert these lines of text

can_check_steps = 1
can_edit_work_type = 1
can_edit_vendor = 1
can_edit_place = 1

to

'can_check_steps': can_check_steps,
'can_edit_work_type': can_edit_work_type,
'can_edit_vendor': can_edit_vendor,
'can_edit_place': can_edit_place,

I know how to add the leading single quote and convert the = into : with multi-line character replacement (something I learned from this question) and basic search and replace, respectively.

But I can’t really figure out how to repeat that the variable name per line. I’m also starting to think there should be a way to do this all in one command using like grouped expressions (using ( and ) to “capture” in regular expression).

I know how to do it in Python with lines of code, but I don’t really know how to do it in VIM using the s/search_for_this/replace_that/options format.


EDIT:

After reading the answers, why doesn’t this work?

^\s*(\w+) = 1\s*$/'\1': \1,/g

For @Jonathan Leffler, :set all in MacVim produces

--- Options ---
  aleph=224           bufhidden=          cscopequickfix=   noerrorbells          fsync               includeexpr=      nomacmeta             omnifunc=           report=2            showmatch           tabline=          nottimeout          nowildignorecase
  antialias           buflisted         nocscoperelative      esckeys           nofullscreen          incsearch           magic               operatorfunc=     norevins              showmode            tabpagemax=10       ttimeoutlen=-1      wildmenu
noarabic              buftype=          nocscopetag           eventignore=      nogdefault            indentexpr=         makeef=           nopaste             norightleft           showtabline=1       tabstop=4           ttybuiltin          wildmode=full
  arabicshape         cdpath=,,           cscopetagorder=0    expandtab           guifont=          noinfercase           makeprg=make        pastetoggle=        ruler               sidescroll=0        tagbsearch        nottyfast             wildoptions=
noallowrevins         cedit=^F          nocscopeverbose     noexrc                guifontwide=      noinsertmode          matchtime=5         patchexpr=          rulerformat=        sidescrolloff=0     taglength=0         ttymouse=           window=83
noaltkeymap           charconvert=      nocursorbind          fileencoding=       guipty              isprint=@,161-255   maxcombine=2        patchmode=          scroll=41           smartcase           tagrelative         ttyscroll=999       winheight=1
  ambiwidth=single  nocindent           nocursorcolumn        fileformat=unix     guitablabel=%M%t    joinspaces          maxfuncdepth=100  nopreserveindent    noscrollbind          smartindent         tags=./tags,tags    undodir=.         nowinfixheight
  autochdir           cinoptions=         cursorline          filetype=           guitabtooltip=      key=                maxmapdepth=1000    previewheight=12    scrolljump=1        smarttab            tagstack          noundofile          nowinfixwidth
  autoindent          cmdheight=1         debug=            nofkmap               helpheight=20       keymap=             maxmem=751782     nopreviewwindow       scrolloff=0         softtabstop=0       term=builtin_gui    undolevels=1000     winminheight=1
noautoread            cmdwinheight=7    nodelcombine          foldclose=          helplang=en         keymodel=           maxmemtot=751782    printdevice=      nosecure            nospell             notermbidi            undoreload=10000    winminwidth=1
noautowrite           colorcolumn=        dictionary=         foldcolumn=0      nohidden              keywordprg=man -s   menuitems=25        printencoding=      selectmode=         spellfile=        noterse               updatecount=200     winwidth=20
noautowriteall        columns=269       nodiff                foldenable          history=1000        langmap=            modeline            printfont=courier   shell=/bin/bash     spelllang=en        textauto            updatetime=4000     wrap
  background=dark   nocompatible          diffexpr=           foldexpr=0        nohkmap               langmenu=none       modelines=5         printmbcharset=     shellcmdflag=-c     spellsuggest=best notextmode            verbose=0           wrapmargin=0
nobackup              concealcursor=      diffopt=filler      foldignore=#      nohkmapp              laststatus=2        modifiable          printmbfont=        shellquote=       nosplitbelow          textwidth=0         verbosefile=        wrapscan
  backupcopy=auto     conceallevel=0    nodigraph             foldlevel=0         hlsearch          nolazyredraw        nomodified            printoptions=       shelltemp         nosplitright          thesaurus=          virtualedit=        write
  backupext=~         completefunc=       display=            foldlevelstart=-1   icon              nolinebreak           more                prompt              shellxquote=        startofline       notildeop           novisualbell        nowriteany
  balloondelay=600  noconfirm             eadirection=both    foldmethod=manual   iconstring=         lines=84            mouse=a             pumheight=0       noshiftround          suffixesadd=        timeout             warn                writebackup
noballooneval       nocopyindent        noedcompatible        foldminlines=1    noignorecase          linespace=0       nomousefocus          quoteescape=\       shiftwidth=4        swapfile            timeoutlen=1000   noweirdinvert         writedelay=0
  balloonexpr=        cpoptions=aABceFs   encoding=utf-8      foldnestmax=20    noimcmdline         nolisp                mousehide         noreadonly          noshortname           swapsync=fsync      title               whichwrap=b,s
nobinary              cryptmethod=zip     endofline           formatexpr=         imdisable         nolist                mousetime=500       redrawtime=2000     showbreak=          switchbuf=          titlelen=85         wildchar=<Tab>
nobomb                cscopepathcomp=0    equalalways         formatoptions=tcq   iminsert=2          listchars=eol:$     number            norelativenumber      showcmd             synmaxcol=3000      titlestring=        wildcharm=0
  browsedir=last      cscopeprg=cscope    equalprg=           formatprg=          imsearch=2          loadplugins         numberwidth=4       remap             noshowfulltag         syntax=             transparency=0      wildignore=
  backspace=indent,eol,start
  backupdir=.,~/tmp,~/
  backupskip=/tmp/*,/var/folders/70/f8c54mjn4vg_wztz9bd17lp40000gn/T/*
  breakat= ^I!@*-+;:,./?
  casemap=internal,keepascii
  cinkeys=0{,0},0),:,0#,!^F,o,O,e
  cinwords=if,else,while,do,for,switch
  clipboard=autoselect
  comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
  commentstring=/*%s*/
  complete=.,w,b,u,t,i
  completeopt=menu,preview
  define=^\s*#\s*define
  directory=.,~/tmp,/var/tmp,/tmp
  errorfile=errors.err
  errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\,,%-GIn file included from %f:%l:%c,%-GIn file
 included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory `%f',%X%*\a[%*\d]: Leaving directory `%f',%D%*\a: Entering directory `%f
',%X%*\a: Leaving directory `%f',%DMaking %*\a in %f,%f|%l| %m
  fileencodings=ucs-bom,utf-8,default,latin1
  fileformats=unix,dos
  fillchars=vert:|,fold:-
  foldmarker={{{,}}}
  foldopen=block,hor,mark,percent,quickfix,search,tag,undo
  foldtext=foldtext()
  formatlistpat=^\s*\d\+[\]:.)}\t ]\s*
  fuoptions=maxvert,maxhorz
  grepformat=%f:%l:%m,%f:%l%m,%f  %l%m
  grepprg=grep -n $* /dev/null
  guicursor=n-v-c:block-Cursor/lCursor,ve:ver35-Cursor,o:hor50-Cursor,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor,sm:block-Cursor-blinkwait175-blinkoff150-blinkon175
  guioptions=egmrLtT
  helpfile=/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt
  highlight=8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete
,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn
  include=^\s*#\s*include
  indentkeys=0{,0},:,0#,!^F,o,O,e
  isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=
  isident=@,48-57,_,192-255
  iskeyword=@,48-57,_,192-255
  lispwords=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eva
l-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,h
andler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object
  matchpairs=(:),{:},[:]
  maxmempattern=1000
  mkspellmem=460000,2000,500
  mousemodel=popup_setpos
  mouseshape=i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow
  nrformats=octal,hex
  paragraphs=IPLPPPQPP TPHPLIPpLpItpplpipbp
  path=.,/usr/include,,
  printexpr=system('open -a Preview '.v:fname_in) + v:shell_error
  printheader=%<%f%h%m%=Page %N
  rightleftcmd=search
  runtimepath=~/.vim,/Applications/MacVim.app/Contents/Resources/vim/vimfiles,/Applications/MacVim.app/Contents/Resources/vim/runtime,/Applications/MacVim.app/Contents/Resources/vim/vimfiles/after,~/.vim/after
  scrollopt=ver,jump
  sections=SHNHH HUnhsh
  selection=inclusive
  sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize
  shellpipe=2>&1| tee
  shellredir=>%s 2>&1
  shortmess=filnxtToO
  spellcapcheck=[.?!]\_[\])'"^I ]\+
  statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v]
  suffixes=.bak,~,.o,.h,.info,.swp,.obj
  termencoding=utf-8
  titleold=Thanks for flying Vim
  toolbar=icons,tooltips
  toolbariconsize=small
  ttytype=builtin_gui
  viewdir=~/.vim/view
  viewoptions=folds,options,cursor
  viminfo='100,<50,s10,h  
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T03:21:51+00:00Added an answer on June 4, 2026 at 3:21 am
    :s/^\([^ ]*\) .*$/'\1': \1,/
    

    The match part starts at the beginning of the line and captures a sequence of non-blanks, followed by an uncaptured blank and anything else. The replace part starts with a quote, what you remembered, a quote, colon, blank, what you remembered again, and a comma.


    Divergent behaviours in vim

    Weird, backslashing ( and ) doesn’t even match anything in my VIM, which is MacVim snapshot 64 (although it still says it’s 7.3.390 by Bram Moolenar). Using the \v in @Tassos’s answer seems to work.

    On Mac OS X 10.7.4, I’m using the vim from /usr/bin which identifies itself as:

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 24 2011 20:00:09)
    Compiled by root@apple.com
    Normal version without GUI.  Features included (+) or not (-):
    -arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent 
    -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
    -conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs 
    -dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path 
    +find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv 
    +insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent 
    +listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape 
    -mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse 
    +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype 
    +path_extra -perl +persistent_undo +postscript +printer -profile -python 
    -python3 +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent 
    -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
    +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
     -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
    +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
     -xterm_clipboard -xterm_save 
       system vimrc file: "$VIM/vimrc"
         user vimrc file: "$HOME/.vimrc"
          user exrc file: "$HOME/.exrc"
      fall-back for $VIM: "/usr/share/vim"
    Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
    Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
    

    I also use vim on Linux machines, and it behaves the same w.r.t regular expressions. One of those versions identifies itself, in part, as:

    VIM - Vi IMproved 7.0 (2006 May 7, compiled Nov  5 2008 11:07:46)
    Included patches: 1, 3-4, 7-9, 11, 13-17, 19-26, 29-31, 34-44, 47, 50-56, 58-64, 66-73, 75, 77-92, 94-107, 109, 202, 234-235, 237
    Modified by <bugzilla@redhat.com>
    Compiled by <bugzilla@redhat.com>
    Huge version without GUI.
    

    I’m not sure if there’s anything worth showing from :set all. This is the output from the Mac version of Vim:

      ambiwidth=single    foldclose=          omnifunc=           syntax=
    noautochdir           foldcolumn=0        operatorfunc=       tabline=
      autoindent          foldenable        nopaste               tabpagemax=10
      autoprint           foldexpr=0          pastetoggle=        tabstop=4
    noautoread            foldignore=#        patchexpr=          tagbsearch
    noautowrite           foldlevel=0         patchmode=          taglength=0
    noautowriteall        foldlevelstart=-1 nopreserveindent      tagrelative
      background=light    foldmethod=manual   previewheight=12    tags=./tags,tags
      backspace=2         foldminlines=1    nopreviewwindow       tagstack
    nobackup              foldnestmax=20      printdevice=        term=xterm-color
      backupcopy=auto     formatexpr=         printencoding=      termencoding=
      backupext=~         formatoptions=tcq   printfont=courier noterse
    nobeautify            formatprg=          printmbcharset=     textauto
    nobinary              fsync               printmbfont=      notextmode
    nobomb              nogdefault            printoptions=       textwidth=0
      bufhidden=          helpheight=20       prompt              thesaurus=
      buflisted           helplang=en         pumheight=0       notildeop
      buftype=          nohidden              quoteescape=\       timeout
      cedit=^F            history=20        noreadonly            timeoutlen=1000
      charconvert=      nohlsearch            redrawtime=2000   notitle
    nocindent           noicon              norelativenumber      titlelen=85
      cinoptions=         iconstring=         remap               titlestring=
      cmdheight=1       noignorecase          report=2          nottimeout
      cmdwinheight=7      iminsert=0        noruler               ttimeoutlen=-1
      colorcolumn=        imsearch=0          rulerformat=        ttybuiltin
      columns=80          includeexpr=        scroll=32           ttyfast
    nocompatible        noincsearch         noscrollbind          ttymouse=xterm
      completefunc=       indentexpr=         scrolljump=1        ttyscroll=999
    noconfirm           noinfercase           scrolloff=0         undodir=.
    nocopyindent        noinsertmode        nosecure            noundofile
      cpoptions=aABceFs   isprint=@,161-255   selectmode=         undolevels=1000
      cryptmethod=zip     joinspaces          shell=/bin/sh       undoreload=10000
      cscopepathcomp=0    key=                shellcmdflag=-c     updatecount=200
      cscopeprg=cscope    keymodel=           shellquote=         updatetime=4000
      cscopequickfix=     keywordprg=man -s   shelltemp           verbose=0
    nocscopetag           langmenu=           shellxquote=        verbosefile=
      cscopetagorder=0    laststatus=1      noshiftround          virtualedit=
    nocscopeverbose     nolazyredraw          shiftwidth=4      novisualbell
    nocursorbind        nolinebreak         noshortname           warn
    nocursorcolumn        lines=66            showbreak=        noweirdinvert
    nocursorline        nolisp              noshowcmd             whichwrap=b,s
      debug=            nolist              noshowfulltag         wildchar=<Tab>
    nodelcombine          listchars=eol:$     showmatch           wildcharm=0
      dictionary=         loadplugins         showmode            wildignore=
    nodiff                magic               showtabline=1     nowildmenu
      diffexpr=           makeef=             sidescroll=0        wildmode=full
      diffopt=filler      makeprg=make        sidescrolloff=0     wildoptions=
    nodigraph             matchtime=5       nosmartcase           window=0
      directory=/tmp      maxcombine=2      nosmartindent         winheight=1
      display=            maxfuncdepth=100  nosmarttab          nowinfixheight
      eadirection=both    maxmapdepth=1000    softtabstop=0     nowinfixwidth
    noedcompatible        maxmem=450298     nospell               winminheight=1
      encoding=utf-8      maxmemtot=450298    spellfile=          winminwidth=1
      endofline           menuitems=25        spelllang=en        winwidth=20
      equalalways         modeline            spellsuggest=best   wrap
      equalprg=           modelines=0       nosplitbelow          wrapmargin=0
    noerrorbells          modifiable        nosplitright          wrapscan
      esckeys           nomodified            startofline         write
      eventignore=        more                statusline=       nowriteany
      expandtab           mouse=              suffixesadd=        writebackup
    noexrc                mousemodel=extend   swapfile            writedelay=0
      fileencoding=       mousetime=500       swapsync=fsync
      fileformat=unix     number              switchbuf=
      filetype=           numberwidth=4       synmaxcol=3000
    

    The behaviour you’re describing sounds as if there are PCRE (Perl-Compatible Regular Expressions) in use. Maybe the -perl in the configuration is relevant there. I don’t see anything in the settings shown that could alter the regex patterns. Maybe you can run your MacVim and show the output of macvim --version and then the output from : set all. Oh, drat, you don’t have enough privileges to edit them into this message. I found an 80-column window sensible for the :set all information and pasting to SO; I normally use 120 column windows.

    Please find my email in my profile and send me the data. I am curious to know what’s different about the MacVim settings (if only so I can set them back to ‘normal’ if I ever get around to using it).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am using Vim to edit a Java file, but I find the way
I normally use VIM to edit my codes and convert them to HTML by
I want to use VIM to edit reStuctured text documents in a number of
When I'm using Vim 7.3 to edit a large PHP file (2000 lines), if
I edit files in Vim were I log terminal command lines along with descriptions
Possible Duplicate: How to edit a file in Vim with all lines ending in
edit: I need advice on best way to search with regex in vim and
Does anybody know how to edit a syntax file for VIM so that keywords
I usually edit RUBY files in VIM. I want the methods(def...end) to fold. Could
When I edit files in my ~/.vim , the .netrwhist file would mysteriously be

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.