The Bong'

VimGolf - Make HTML List

2022-06-30 at vim category

Turn the comma separated list into an unordered html list.

,로 구분되는 Text를 ul li로 묶어라

Start file

item1,item2,item3,item4,item5

End file

<ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item5</li>
</ul>

실제 많이 사용할만한 문제.


처음풀이:

A,<Esc>:%s/,/<\/li>\r/g<CR>gg<C-V><Down><Down><Down><Down>I<li><Esc><C-V>
<Down><Down><Down><Down>>O<BS><ul><Esc><fd-58>i</ul><Esc>:wq<CR>

Replace를 위하여 먼저 맨 끝에 똑같이,를 추가. 그 후에 **,**를 로 replace. 비쥬얼모드로 앞에

  • 를 모두 추가. 다시 비쥬얼모드와 **>**로 탭 추가. O명령어로 위에
      추가. 맨 마지막으로 가서
    추가.

    • A : 해당 라인 마지막에 입력
    • gg : 공백이 아닌 첫 글자로 이동
    • <C-V>: Ctrl+v로 열편집
    • &gt; : 들여쓰기

    점수는 58점으로 많이 낮은편이다.


    개선한 풀이:

    qqcw<li><Esc>pa</li><Esc>lr<CR>q4@qo</ul><Esc>ggO<ul><Esc>jV6G>ZZ
    

    매크로를 이용하여 cw로 한 단어를

  • 추가. 컷 한 item1을 다시 붙이고
  • 를 입력. 오른쪽이동 후 r 엔터로 ,를 삭제하며 다음 줄로 개행. 매크로 반복. gg로 처음으로 이동 하여
      입력. V로 비주얼, 6G로
    • 영역 모두 선택 후 >로 탭처리

      • c : 잘라내기로 보면 될 듯
      • w : 단어만큼 이동
      • r : Replace
      • V : 행단위 비쥬얼모드. cf. v : 커서위치부터 비쥬얼모드
      • G : 공백이 아닌 첫 글자로 이동. ex. 6G : 6번째 라인 첫 글자로 이동
    Bong

    Personal blog by Bong.

    Sr. Back-end Developer / Interested in js, ts, functional, serverless