将shell输出插入带有许多引号的vim

时间:2018-05-08 15:23:37

标签: vim

我在整理这个shell命令时遇到了麻烦:

uuidgen | tr -d '\n' | awk '{printf("\"%s\"", $0);}'

像这样进入Vimscript:

:command UUID execute "normal! \"=system('...')\<CR>p"

我目前的尝试是:

:command UUID execute "normal! \"=system('uuidgen | tr -d \'\n\' | awk \'{printf(\"\"%s\"\", $0);}\'')\<CR>p"

运行命令时返回Unknown mark。我认为我最终逃脱了地狱,不知道如何恢复。

2 个答案:

答案 0 :(得分:1)

我觉得这可以通过rows 5 and 6

更简单地完成
Private Sub Worksheet_Change(ByVal Target As Range)
    Worksheet_Change_A Target
    Worksheet_Change_B Target
End Sub  

Private Sub Worksheet_Change_A(ByVal Target As Range)
    Dim rng As Range      
    Set rng = Target.Parent.Range("B1") 
    If Target.Address <> Range("B1").Address Then 
        Exit Sub 
    Cells.EntireRow.Hidden = False
    Select Case Range("B1")   
        Case "Yes": 
            Range("2:3").EntireRow.Hidden = False
        Case "No": 
            Range("2:3").EntireRow.Hidden = True 
    End Select
End Sub  

Private Sub Worksheet_Change_B(ByVal Target As Range)
    Dim rng As Range
    Set rng = Target.Parent.Range("B4") 

    If Target.Address <> Range("B4").Address Then 
        Exit Sub
    Cells.EntireRow.Hidden = False
    Select Case Range("B4")  
        Case "Yes": Range("5:6").EntireRow.Hidden = False
        Case "No": Range("5:6").EntireRow.Hidden = True
    End Select
End Sub

如果您不介意systemlist(),那么您可以使用更为简单的command! UUID put='\"'.systemlist('uuidgen')[0].'\"' nnoremap <key> "='"'.systemlist('uuidgen')[0].'"'<cr>p inoremap <key> <c-r>='"'.systemlist('uuidgen')[0].'"'<cr> 功能。

如需更多帮助,请参阅:

'

答案 1 :(得分:0)

逃避地狱......; - ]

escape('string','\\/.*$^~[]')

请注意第一部分中的双引号。第二部分是逃避的通用片段。

FROM ubuntu:16.04

RUN apt-get update  && \
    apt-get install -y curl vim && \
    curl -sL "https://deb.nodesource.com/setup_8.x" | bash - && \
    apt-get install -y nodejs net-tools git && \
    npm install -g @angular/cli

EXPOSE 4200

WORKDIR /ng_app/jwt-auth

ENTRYPOINT ng serve

从这里开始应该很容易