Cannot send `--` into tmux panes from vim












3















I've the following function and accompanying key-bindings to send texts from vim in one tmux pane to other:



" copy yanked text to tmux pane
function! Send_to_tmux(count) abort
let _count = (a:count == 0) ? 2 : a:count
let text = @z
let text = substitute(text, ';', '\;', 'g')
let text = substitute(text, '"', '\"', 'g')
let text = substitute(text, 'n', '" Enter "', 'g')
let text = substitute(text, '!', '\!', 'g')
let text = substitute(text, '%', '\%', 'g')
let text = substitute(text, '#', '\#', 'g')
silent execute "!tmux send-keys -t " . _count . " "" . text . """
silent execute "!tmux send-keys -t " . _count . "Enter"
unlet _count
unlet text
endfunction
nnoremap <expr> <Leader>p '"zyip:call Send_to_tmux('.v:count.')<CR>'
xnoremap <expr> <Leader>p '"zy:call Send_to_tmux('.v:count.')<CR>'


I basically use this function when I use SQL. Now, SQL has commenting structure of two types:
(written in the structure of :h 'commentstring')




  • /* %s */

  • -- %s


I always used the first type of comment, and didn't set up the substitute command for second type of comment. And now I see that I can't send texts into other tmux panes of structure -- texts. I have tried it in bare bash, and MySQL command line, same result. So, I guess bash is not taking string of that structure, or tmux is eating it itself.



I've removed all tmux configurations and tried to do it, same result. So, I don't think it's a problem with my tmux config.



How do I send -- to tmux panes from vim?










share|improve this question





























    3















    I've the following function and accompanying key-bindings to send texts from vim in one tmux pane to other:



    " copy yanked text to tmux pane
    function! Send_to_tmux(count) abort
    let _count = (a:count == 0) ? 2 : a:count
    let text = @z
    let text = substitute(text, ';', '\;', 'g')
    let text = substitute(text, '"', '\"', 'g')
    let text = substitute(text, 'n', '" Enter "', 'g')
    let text = substitute(text, '!', '\!', 'g')
    let text = substitute(text, '%', '\%', 'g')
    let text = substitute(text, '#', '\#', 'g')
    silent execute "!tmux send-keys -t " . _count . " "" . text . """
    silent execute "!tmux send-keys -t " . _count . "Enter"
    unlet _count
    unlet text
    endfunction
    nnoremap <expr> <Leader>p '"zyip:call Send_to_tmux('.v:count.')<CR>'
    xnoremap <expr> <Leader>p '"zy:call Send_to_tmux('.v:count.')<CR>'


    I basically use this function when I use SQL. Now, SQL has commenting structure of two types:
    (written in the structure of :h 'commentstring')




    • /* %s */

    • -- %s


    I always used the first type of comment, and didn't set up the substitute command for second type of comment. And now I see that I can't send texts into other tmux panes of structure -- texts. I have tried it in bare bash, and MySQL command line, same result. So, I guess bash is not taking string of that structure, or tmux is eating it itself.



    I've removed all tmux configurations and tried to do it, same result. So, I don't think it's a problem with my tmux config.



    How do I send -- to tmux panes from vim?










    share|improve this question



























      3












      3








      3


      1






      I've the following function and accompanying key-bindings to send texts from vim in one tmux pane to other:



      " copy yanked text to tmux pane
      function! Send_to_tmux(count) abort
      let _count = (a:count == 0) ? 2 : a:count
      let text = @z
      let text = substitute(text, ';', '\;', 'g')
      let text = substitute(text, '"', '\"', 'g')
      let text = substitute(text, 'n', '" Enter "', 'g')
      let text = substitute(text, '!', '\!', 'g')
      let text = substitute(text, '%', '\%', 'g')
      let text = substitute(text, '#', '\#', 'g')
      silent execute "!tmux send-keys -t " . _count . " "" . text . """
      silent execute "!tmux send-keys -t " . _count . "Enter"
      unlet _count
      unlet text
      endfunction
      nnoremap <expr> <Leader>p '"zyip:call Send_to_tmux('.v:count.')<CR>'
      xnoremap <expr> <Leader>p '"zy:call Send_to_tmux('.v:count.')<CR>'


      I basically use this function when I use SQL. Now, SQL has commenting structure of two types:
      (written in the structure of :h 'commentstring')




      • /* %s */

      • -- %s


      I always used the first type of comment, and didn't set up the substitute command for second type of comment. And now I see that I can't send texts into other tmux panes of structure -- texts. I have tried it in bare bash, and MySQL command line, same result. So, I guess bash is not taking string of that structure, or tmux is eating it itself.



      I've removed all tmux configurations and tried to do it, same result. So, I don't think it's a problem with my tmux config.



      How do I send -- to tmux panes from vim?










      share|improve this question
















      I've the following function and accompanying key-bindings to send texts from vim in one tmux pane to other:



      " copy yanked text to tmux pane
      function! Send_to_tmux(count) abort
      let _count = (a:count == 0) ? 2 : a:count
      let text = @z
      let text = substitute(text, ';', '\;', 'g')
      let text = substitute(text, '"', '\"', 'g')
      let text = substitute(text, 'n', '" Enter "', 'g')
      let text = substitute(text, '!', '\!', 'g')
      let text = substitute(text, '%', '\%', 'g')
      let text = substitute(text, '#', '\#', 'g')
      silent execute "!tmux send-keys -t " . _count . " "" . text . """
      silent execute "!tmux send-keys -t " . _count . "Enter"
      unlet _count
      unlet text
      endfunction
      nnoremap <expr> <Leader>p '"zyip:call Send_to_tmux('.v:count.')<CR>'
      xnoremap <expr> <Leader>p '"zy:call Send_to_tmux('.v:count.')<CR>'


      I basically use this function when I use SQL. Now, SQL has commenting structure of two types:
      (written in the structure of :h 'commentstring')




      • /* %s */

      • -- %s


      I always used the first type of comment, and didn't set up the substitute command for second type of comment. And now I see that I can't send texts into other tmux panes of structure -- texts. I have tried it in bare bash, and MySQL command line, same result. So, I guess bash is not taking string of that structure, or tmux is eating it itself.



      I've removed all tmux configurations and tried to do it, same result. So, I don't think it's a problem with my tmux config.



      How do I send -- to tmux panes from vim?







      tmux






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 29 at 15:14







      klaus

















      asked Mar 29 at 14:31









      klausklaus

      1,144220




      1,144220






















          1 Answer
          1






          active

          oldest

          votes


















          4














          Looks more like a shell related question than a Vim related question. I would try the following (not tested, so might be wrong):



          silent execute "!tmux send-keys -t " . _count . " -- "" . text . """


          Add a -- before the text. Most Unix commands stop option processing as soon as they see a -- and everything after it is handled as parameter.






          share|improve this answer


























          • It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

            – klaus
            Mar 29 at 15:58






          • 1





            @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

            – D. Ben Knoble
            Mar 29 at 16:25











          • In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

            – wchargin
            Mar 29 at 19:35












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "599"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f19365%2fcannot-send-into-tmux-panes-from-vim%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          Looks more like a shell related question than a Vim related question. I would try the following (not tested, so might be wrong):



          silent execute "!tmux send-keys -t " . _count . " -- "" . text . """


          Add a -- before the text. Most Unix commands stop option processing as soon as they see a -- and everything after it is handled as parameter.






          share|improve this answer


























          • It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

            – klaus
            Mar 29 at 15:58






          • 1





            @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

            – D. Ben Knoble
            Mar 29 at 16:25











          • In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

            – wchargin
            Mar 29 at 19:35
















          4














          Looks more like a shell related question than a Vim related question. I would try the following (not tested, so might be wrong):



          silent execute "!tmux send-keys -t " . _count . " -- "" . text . """


          Add a -- before the text. Most Unix commands stop option processing as soon as they see a -- and everything after it is handled as parameter.






          share|improve this answer


























          • It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

            – klaus
            Mar 29 at 15:58






          • 1





            @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

            – D. Ben Knoble
            Mar 29 at 16:25











          • In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

            – wchargin
            Mar 29 at 19:35














          4












          4








          4







          Looks more like a shell related question than a Vim related question. I would try the following (not tested, so might be wrong):



          silent execute "!tmux send-keys -t " . _count . " -- "" . text . """


          Add a -- before the text. Most Unix commands stop option processing as soon as they see a -- and everything after it is handled as parameter.






          share|improve this answer















          Looks more like a shell related question than a Vim related question. I would try the following (not tested, so might be wrong):



          silent execute "!tmux send-keys -t " . _count . " -- "" . text . """


          Add a -- before the text. Most Unix commands stop option processing as soon as they see a -- and everything after it is handled as parameter.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 29 at 17:04









          klaus

          1,144220




          1,144220










          answered Mar 29 at 15:27









          RalfRalf

          3,2751317




          3,2751317













          • It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

            – klaus
            Mar 29 at 15:58






          • 1





            @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

            – D. Ben Knoble
            Mar 29 at 16:25











          • In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

            – wchargin
            Mar 29 at 19:35



















          • It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

            – klaus
            Mar 29 at 15:58






          • 1





            @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

            – D. Ben Knoble
            Mar 29 at 16:25











          • In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

            – wchargin
            Mar 29 at 19:35

















          It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

          – klaus
          Mar 29 at 15:58





          It worked! Sorry, I couldn't figure out where to actually post this question, i.e. Unix or Stackoverflow. And can I just change the mapping, i.e. always send ` -- ` before sending the text, irrespective of whether the text has -- inside itself? I'm currently doing that, no problem yet occurred. If you have any comment, please let me know.

          – klaus
          Mar 29 at 15:58




          1




          1





          @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

          – D. Ben Knoble
          Mar 29 at 16:25





          @klaus if, as Ralf describes, the SQL cli youre using is well-behaved under unix, it should work if you just always send -- before your literal input

          – D. Ben Knoble
          Mar 29 at 16:25













          In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

          – wchargin
          Mar 29 at 19:35





          In particular, the SQL CLI should conform to Guideline 10 of the Utility Syntax Guidelines (IEEE Std 1003.1-2001, Section 12.2).

          – wchargin
          Mar 29 at 19:35


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Vi and Vim Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f19365%2fcannot-send-into-tmux-panes-from-vim%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Category:香港粉麵

          List *all* the tuples!

          Channel [V]