Why my simple script vim don't work for tab character?
This is my simple script of vim
#!/usr/bin/vim
%norm f^ID
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
The first line delete all after the tab(^I)
the second add a "," after every line
the third convert line to column.
If I used the three separate commands is perfect
But when I did
:source myscript.vim
Only the second and third command are applied,the first with tab character no.
Why?
vim
add a comment |
This is my simple script of vim
#!/usr/bin/vim
%norm f^ID
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
The first line delete all after the tab(^I)
the second add a "," after every line
the third convert line to column.
If I used the three separate commands is perfect
But when I did
:source myscript.vim
Only the second and third command are applied,the first with tab character no.
Why?
vim
add a comment |
This is my simple script of vim
#!/usr/bin/vim
%norm f^ID
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
The first line delete all after the tab(^I)
the second add a "," after every line
the third convert line to column.
If I used the three separate commands is perfect
But when I did
:source myscript.vim
Only the second and third command are applied,the first with tab character no.
Why?
vim
This is my simple script of vim
#!/usr/bin/vim
%norm f^ID
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
The first line delete all after the tab(^I)
the second add a "," after every line
the third convert line to column.
If I used the three separate commands is perfect
But when I did
:source myscript.vim
Only the second and third command are applied,the first with tab character no.
Why?
vim
vim
asked Nov 11 at 21:05
elbarna
4,057103681
4,057103681
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
If the ^I
is the two characters ^
and I
, then the first command would look for the character ^
and insert (I
) a D
at the start of those lines.
You should insert a literal tab character (with Ctrl+V Tab) where you now have ^
and I
.
Alternatively, just use (something like)
%!cut -f 1 | awk -v ORS=', ' '{ print }'
This picks out the first tab-delimited column with the cut
and then reformats the resulting rows into comma-space-separated columns.
Shorter, but just commas (not comma-space) between the resulting columns:
%!cut -f 1 | tr 'n' ','
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
add a comment |
Alternate solution found,instead of enter the ^I
, I simply enter ..a tab pressed after f (f+TAB D)
So my script now is
#!/usr/bin/vim
#the space after f is not a space,is a tab so press tab
%norm f D
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
Tested and works perfectly.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f481144%2fwhy-my-simple-script-vim-dont-work-for-tab-character%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
If the ^I
is the two characters ^
and I
, then the first command would look for the character ^
and insert (I
) a D
at the start of those lines.
You should insert a literal tab character (with Ctrl+V Tab) where you now have ^
and I
.
Alternatively, just use (something like)
%!cut -f 1 | awk -v ORS=', ' '{ print }'
This picks out the first tab-delimited column with the cut
and then reformats the resulting rows into comma-space-separated columns.
Shorter, but just commas (not comma-space) between the resulting columns:
%!cut -f 1 | tr 'n' ','
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
add a comment |
If the ^I
is the two characters ^
and I
, then the first command would look for the character ^
and insert (I
) a D
at the start of those lines.
You should insert a literal tab character (with Ctrl+V Tab) where you now have ^
and I
.
Alternatively, just use (something like)
%!cut -f 1 | awk -v ORS=', ' '{ print }'
This picks out the first tab-delimited column with the cut
and then reformats the resulting rows into comma-space-separated columns.
Shorter, but just commas (not comma-space) between the resulting columns:
%!cut -f 1 | tr 'n' ','
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
add a comment |
If the ^I
is the two characters ^
and I
, then the first command would look for the character ^
and insert (I
) a D
at the start of those lines.
You should insert a literal tab character (with Ctrl+V Tab) where you now have ^
and I
.
Alternatively, just use (something like)
%!cut -f 1 | awk -v ORS=', ' '{ print }'
This picks out the first tab-delimited column with the cut
and then reformats the resulting rows into comma-space-separated columns.
Shorter, but just commas (not comma-space) between the resulting columns:
%!cut -f 1 | tr 'n' ','
If the ^I
is the two characters ^
and I
, then the first command would look for the character ^
and insert (I
) a D
at the start of those lines.
You should insert a literal tab character (with Ctrl+V Tab) where you now have ^
and I
.
Alternatively, just use (something like)
%!cut -f 1 | awk -v ORS=', ' '{ print }'
This picks out the first tab-delimited column with the cut
and then reformats the resulting rows into comma-space-separated columns.
Shorter, but just commas (not comma-space) between the resulting columns:
%!cut -f 1 | tr 'n' ','
edited Nov 11 at 22:36
answered Nov 11 at 22:05
Kusalananda
121k16229372
121k16229372
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
add a comment |
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
Works fine,I have also found another alternative solution
– elbarna
Nov 11 at 22:37
add a comment |
Alternate solution found,instead of enter the ^I
, I simply enter ..a tab pressed after f (f+TAB D)
So my script now is
#!/usr/bin/vim
#the space after f is not a space,is a tab so press tab
%norm f D
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
Tested and works perfectly.
add a comment |
Alternate solution found,instead of enter the ^I
, I simply enter ..a tab pressed after f (f+TAB D)
So my script now is
#!/usr/bin/vim
#the space after f is not a space,is a tab so press tab
%norm f D
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
Tested and works perfectly.
add a comment |
Alternate solution found,instead of enter the ^I
, I simply enter ..a tab pressed after f (f+TAB D)
So my script now is
#!/usr/bin/vim
#the space after f is not a space,is a tab so press tab
%norm f D
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
Tested and works perfectly.
Alternate solution found,instead of enter the ^I
, I simply enter ..a tab pressed after f (f+TAB D)
So my script now is
#!/usr/bin/vim
#the space after f is not a space,is a tab so press tab
%norm f D
%norm $i,
%!awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
Tested and works perfectly.
answered Nov 11 at 22:35
elbarna
4,057103681
4,057103681
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux 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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f481144%2fwhy-my-simple-script-vim-dont-work-for-tab-character%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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