Auto indent / format code for Vim?
I'm trying to use Vim more and more when I can. One of my biggest grip between Vim and an IDE like Aptana is the ability to auto indent.
Is there a means of auto formatting code (HTML, CSS, PHP) so it is properly indented?
If so how do you install this into vim? I don't understand plugins very much.
I tried reviewing this thread and it confused me more: How to change vim auto-indent behavior?
vim
add a comment |
I'm trying to use Vim more and more when I can. One of my biggest grip between Vim and an IDE like Aptana is the ability to auto indent.
Is there a means of auto formatting code (HTML, CSS, PHP) so it is properly indented?
If so how do you install this into vim? I don't understand plugins very much.
I tried reviewing this thread and it confused me more: How to change vim auto-indent behavior?
vim
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50
add a comment |
I'm trying to use Vim more and more when I can. One of my biggest grip between Vim and an IDE like Aptana is the ability to auto indent.
Is there a means of auto formatting code (HTML, CSS, PHP) so it is properly indented?
If so how do you install this into vim? I don't understand plugins very much.
I tried reviewing this thread and it confused me more: How to change vim auto-indent behavior?
vim
I'm trying to use Vim more and more when I can. One of my biggest grip between Vim and an IDE like Aptana is the ability to auto indent.
Is there a means of auto formatting code (HTML, CSS, PHP) so it is properly indented?
If so how do you install this into vim? I don't understand plugins very much.
I tried reviewing this thread and it confused me more: How to change vim auto-indent behavior?
vim
vim
edited Apr 13 '17 at 12:36
Community♦
1
1
asked Sep 1 '11 at 20:47
chrisjleechrisjlee
2,530123350
2,530123350
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50
add a comment |
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50
add a comment |
7 Answers
7
active
oldest
votes
To indent the whole file automatically:
gg
=G
Explained:
gg- go to beginning of the file
G- go to end of the file
=- indent
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to executegg=Gfrom shell without opening the file?
– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
|
show 6 more comments
I don't know about auto-formatting existing code, but if you are writing code and need auto indent:
:set autoindent(or:set ai) will turn on auto-indent
Ctrl-d to un-indent (AKA outdent) your code- Tab or spaces to indent -- I personally use tab
:set tabwidth=4(or:set tw=4) will control how many spaces a tab should indent code- The
>>command will indent the current line. If you prefix it by a number, say4>>then it will indent 4 lines, starting with the current line. - Likewise the
<<command will un-indent a line
I hope this gives you a good start.
7
To auto-indent existing code, use={motion}in normal mode -- e.g.=Gwill indent all code from the current line to the end of the file.==will indent the current line.
– Edd Steel
Sep 1 '11 at 22:36
1
also make sure indent plugins are being loaded (e.g. with:filetype indent on)
– jw013
Sep 2 '11 at 0:50
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
add a comment |
Auto Indent *.sh
Just add the following lines in ~/.vimrc
filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
~./vimrconly applicable for vim editor.
– Rahul Patil
Aug 29 '16 at 3:54
add a comment |
This plugin makes it easier to perform formatting on your code. It integrates external formatters, and has a fallback on vim's indent functionality.
https://github.com/Chiel92/vim-autoformat
Also, notice the difference between formatting and indenting. Indenting only corrects the whitespace before every line, while formatting also deals with any other thing, such as whitespace around operators etc.
add a comment |
In bash I do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3
this eliminates comments and reindents the script "bash way".
it will not work if the script contains HEREDOCS but if you do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3
it will work with any script but the whole script will be indented by 4 spaces. feel free to modify but cite my name in your script and post it! :D
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly withsedif you so wish:cat script_to_be_reindented.sh | sed 's#^# #g'(er, well, SO markdown is replacing the spaces with a tab, but you get the point)
– eacousineau
Mar 2 '17 at 18:29
add a comment |
Create/edit the ~/.vimrc file and add the following line:
set autoindent
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions:set autoindentwhich enables auto indent only for the current file. Adding it in the.vimrcfile enables auto indent permanently.
– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
add a comment |
vim's autoformat/indent works pretty well. First, put this line in your ~/.vimrc:
filetype plugin indent on
Then open a file in vim and type gg=G
(gg moves cursor to the first line. = runs the indent command. G tells indent command to run from here to the last line.)
If the autoformat looks really bad, like every line is just left indented, then run :scriptnames and check if .../indent/html.vim (or whatever language you're using) is in the list. If not, then make sure your ~/.vimrc is correct. Or if you ran :filetype plugin indent on from the vim command line, you will need to re-open the file :e
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%2f19945%2fauto-indent-format-code-for-vim%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
7 Answers
7
active
oldest
votes
7 Answers
7
active
oldest
votes
active
oldest
votes
active
oldest
votes
To indent the whole file automatically:
gg
=G
Explained:
gg- go to beginning of the file
G- go to end of the file
=- indent
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to executegg=Gfrom shell without opening the file?
– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
|
show 6 more comments
To indent the whole file automatically:
gg
=G
Explained:
gg- go to beginning of the file
G- go to end of the file
=- indent
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to executegg=Gfrom shell without opening the file?
– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
|
show 6 more comments
To indent the whole file automatically:
gg
=G
Explained:
gg- go to beginning of the file
G- go to end of the file
=- indent
To indent the whole file automatically:
gg
=G
Explained:
gg- go to beginning of the file
G- go to end of the file
=- indent
edited Feb 28 at 18:44
stonewareslord
605
605
answered Sep 2 '11 at 5:46
takeshintakeshin
766811
766811
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to executegg=Gfrom shell without opening the file?
– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
|
show 6 more comments
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to executegg=Gfrom shell without opening the file?
– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
2
2
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
Could you break it down? What is g typically by itself? and =G?
– chrisjlee
Sep 2 '11 at 5:47
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
@Chris see the edit
– takeshin
Sep 2 '11 at 5:53
1
1
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
Nice hint, I never knew this. However, it does a rubbish job with bash.
– Sparhawk
Aug 8 '14 at 4:49
How to execute
gg=G from shell without opening the file?– W.M.
Aug 28 '16 at 16:18
How to execute
gg=G from shell without opening the file?– W.M.
Aug 28 '16 at 16:18
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
@takeshin can you please explain it much further, do we need to type it in the file or do we need to run it in the terminal
– Kasun Siyambalapitiya
Dec 1 '16 at 11:22
|
show 6 more comments
I don't know about auto-formatting existing code, but if you are writing code and need auto indent:
:set autoindent(or:set ai) will turn on auto-indent
Ctrl-d to un-indent (AKA outdent) your code- Tab or spaces to indent -- I personally use tab
:set tabwidth=4(or:set tw=4) will control how many spaces a tab should indent code- The
>>command will indent the current line. If you prefix it by a number, say4>>then it will indent 4 lines, starting with the current line. - Likewise the
<<command will un-indent a line
I hope this gives you a good start.
7
To auto-indent existing code, use={motion}in normal mode -- e.g.=Gwill indent all code from the current line to the end of the file.==will indent the current line.
– Edd Steel
Sep 1 '11 at 22:36
1
also make sure indent plugins are being loaded (e.g. with:filetype indent on)
– jw013
Sep 2 '11 at 0:50
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
add a comment |
I don't know about auto-formatting existing code, but if you are writing code and need auto indent:
:set autoindent(or:set ai) will turn on auto-indent
Ctrl-d to un-indent (AKA outdent) your code- Tab or spaces to indent -- I personally use tab
:set tabwidth=4(or:set tw=4) will control how many spaces a tab should indent code- The
>>command will indent the current line. If you prefix it by a number, say4>>then it will indent 4 lines, starting with the current line. - Likewise the
<<command will un-indent a line
I hope this gives you a good start.
7
To auto-indent existing code, use={motion}in normal mode -- e.g.=Gwill indent all code from the current line to the end of the file.==will indent the current line.
– Edd Steel
Sep 1 '11 at 22:36
1
also make sure indent plugins are being loaded (e.g. with:filetype indent on)
– jw013
Sep 2 '11 at 0:50
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
add a comment |
I don't know about auto-formatting existing code, but if you are writing code and need auto indent:
:set autoindent(or:set ai) will turn on auto-indent
Ctrl-d to un-indent (AKA outdent) your code- Tab or spaces to indent -- I personally use tab
:set tabwidth=4(or:set tw=4) will control how many spaces a tab should indent code- The
>>command will indent the current line. If you prefix it by a number, say4>>then it will indent 4 lines, starting with the current line. - Likewise the
<<command will un-indent a line
I hope this gives you a good start.
I don't know about auto-formatting existing code, but if you are writing code and need auto indent:
:set autoindent(or:set ai) will turn on auto-indent
Ctrl-d to un-indent (AKA outdent) your code- Tab or spaces to indent -- I personally use tab
:set tabwidth=4(or:set tw=4) will control how many spaces a tab should indent code- The
>>command will indent the current line. If you prefix it by a number, say4>>then it will indent 4 lines, starting with the current line. - Likewise the
<<command will un-indent a line
I hope this gives you a good start.
edited Sep 1 '11 at 21:06
enzotib
34.5k810395
34.5k810395
answered Sep 1 '11 at 21:02
Hai VuHai Vu
92148
92148
7
To auto-indent existing code, use={motion}in normal mode -- e.g.=Gwill indent all code from the current line to the end of the file.==will indent the current line.
– Edd Steel
Sep 1 '11 at 22:36
1
also make sure indent plugins are being loaded (e.g. with:filetype indent on)
– jw013
Sep 2 '11 at 0:50
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
add a comment |
7
To auto-indent existing code, use={motion}in normal mode -- e.g.=Gwill indent all code from the current line to the end of the file.==will indent the current line.
– Edd Steel
Sep 1 '11 at 22:36
1
also make sure indent plugins are being loaded (e.g. with:filetype indent on)
– jw013
Sep 2 '11 at 0:50
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
7
7
To auto-indent existing code, use
={motion} in normal mode -- e.g. =G will indent all code from the current line to the end of the file. == will indent the current line.– Edd Steel
Sep 1 '11 at 22:36
To auto-indent existing code, use
={motion} in normal mode -- e.g. =G will indent all code from the current line to the end of the file. == will indent the current line.– Edd Steel
Sep 1 '11 at 22:36
1
1
also make sure indent plugins are being loaded (e.g. with
:filetype indent on)– jw013
Sep 2 '11 at 0:50
also make sure indent plugins are being loaded (e.g. with
:filetype indent on)– jw013
Sep 2 '11 at 0:50
2
2
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
set tw=4 sets the TEXTWIDTH to 4
– Steffen Roller
Apr 25 '17 at 2:01
add a comment |
Auto Indent *.sh
Just add the following lines in ~/.vimrc
filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
~./vimrconly applicable for vim editor.
– Rahul Patil
Aug 29 '16 at 3:54
add a comment |
Auto Indent *.sh
Just add the following lines in ~/.vimrc
filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
~./vimrconly applicable for vim editor.
– Rahul Patil
Aug 29 '16 at 3:54
add a comment |
Auto Indent *.sh
Just add the following lines in ~/.vimrc
filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
Auto Indent *.sh
Just add the following lines in ~/.vimrc
filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
edited Oct 16 '18 at 18:22
Jamie S
32
32
answered Dec 20 '13 at 20:12
Rahul PatilRahul Patil
15.1k186083
15.1k186083
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
~./vimrconly applicable for vim editor.
– Rahul Patil
Aug 29 '16 at 3:54
add a comment |
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
~./vimrconly applicable for vim editor.
– Rahul Patil
Aug 29 '16 at 3:54
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
Does this apply only to editing with vim or all editor tools?
– W.M.
Aug 28 '16 at 16:18
1
1
~./vimrc only applicable for vim editor.– Rahul Patil
Aug 29 '16 at 3:54
~./vimrc only applicable for vim editor.– Rahul Patil
Aug 29 '16 at 3:54
add a comment |
This plugin makes it easier to perform formatting on your code. It integrates external formatters, and has a fallback on vim's indent functionality.
https://github.com/Chiel92/vim-autoformat
Also, notice the difference between formatting and indenting. Indenting only corrects the whitespace before every line, while formatting also deals with any other thing, such as whitespace around operators etc.
add a comment |
This plugin makes it easier to perform formatting on your code. It integrates external formatters, and has a fallback on vim's indent functionality.
https://github.com/Chiel92/vim-autoformat
Also, notice the difference between formatting and indenting. Indenting only corrects the whitespace before every line, while formatting also deals with any other thing, such as whitespace around operators etc.
add a comment |
This plugin makes it easier to perform formatting on your code. It integrates external formatters, and has a fallback on vim's indent functionality.
https://github.com/Chiel92/vim-autoformat
Also, notice the difference between formatting and indenting. Indenting only corrects the whitespace before every line, while formatting also deals with any other thing, such as whitespace around operators etc.
This plugin makes it easier to perform formatting on your code. It integrates external formatters, and has a fallback on vim's indent functionality.
https://github.com/Chiel92/vim-autoformat
Also, notice the difference between formatting and indenting. Indenting only corrects the whitespace before every line, while formatting also deals with any other thing, such as whitespace around operators etc.
answered Dec 20 '13 at 20:01
Chiel ten BrinkeChiel ten Brinke
1316
1316
add a comment |
add a comment |
In bash I do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3
this eliminates comments and reindents the script "bash way".
it will not work if the script contains HEREDOCS but if you do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3
it will work with any script but the whole script will be indented by 4 spaces. feel free to modify but cite my name in your script and post it! :D
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly withsedif you so wish:cat script_to_be_reindented.sh | sed 's#^# #g'(er, well, SO markdown is replacing the spaces with a tab, but you get the point)
– eacousineau
Mar 2 '17 at 18:29
add a comment |
In bash I do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3
this eliminates comments and reindents the script "bash way".
it will not work if the script contains HEREDOCS but if you do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3
it will work with any script but the whole script will be indented by 4 spaces. feel free to modify but cite my name in your script and post it! :D
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly withsedif you so wish:cat script_to_be_reindented.sh | sed 's#^# #g'(er, well, SO markdown is replacing the spaces with a tab, but you get the point)
– eacousineau
Mar 2 '17 at 18:29
add a comment |
In bash I do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3
this eliminates comments and reindents the script "bash way".
it will not work if the script contains HEREDOCS but if you do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3
it will work with any script but the whole script will be indented by 4 spaces. feel free to modify but cite my name in your script and post it! :D
In bash I do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3
this eliminates comments and reindents the script "bash way".
it will not work if the script contains HEREDOCS but if you do this:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3
it will work with any script but the whole script will be indented by 4 spaces. feel free to modify but cite my name in your script and post it! :D
answered Dec 15 '16 at 1:10
ZibriZibri
15626
15626
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly withsedif you so wish:cat script_to_be_reindented.sh | sed 's#^# #g'(er, well, SO markdown is replacing the spaces with a tab, but you get the point)
– eacousineau
Mar 2 '17 at 18:29
add a comment |
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly withsedif you so wish:cat script_to_be_reindented.sh | sed 's#^# #g'(er, well, SO markdown is replacing the spaces with a tab, but you get the point)
– eacousineau
Mar 2 '17 at 18:29
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly with
sed if you so wish: cat script_to_be_reindented.sh | sed 's#^# #g' (er, well, SO markdown is replacing the spaces with a tab, but you get the point)– eacousineau
Mar 2 '17 at 18:29
I believe this may be missing the point of the question; rather than indenting a set of lines, I believe the OP wished to auto-indent within VIM for a variety of languages. As an aside, you may be able to achieve this a little more directly with
sed if you so wish: cat script_to_be_reindented.sh | sed 's#^# #g' (er, well, SO markdown is replacing the spaces with a tab, but you get the point)– eacousineau
Mar 2 '17 at 18:29
add a comment |
Create/edit the ~/.vimrc file and add the following line:
set autoindent
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions:set autoindentwhich enables auto indent only for the current file. Adding it in the.vimrcfile enables auto indent permanently.
– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
add a comment |
Create/edit the ~/.vimrc file and add the following line:
set autoindent
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions:set autoindentwhich enables auto indent only for the current file. Adding it in the.vimrcfile enables auto indent permanently.
– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
add a comment |
Create/edit the ~/.vimrc file and add the following line:
set autoindent
Create/edit the ~/.vimrc file and add the following line:
set autoindent
answered Jan 30 '17 at 5:10
Akshat MaheshwariAkshat Maheshwari
1
1
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions:set autoindentwhich enables auto indent only for the current file. Adding it in the.vimrcfile enables auto indent permanently.
– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
add a comment |
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions:set autoindentwhich enables auto indent only for the current file. Adding it in the.vimrcfile enables auto indent permanently.
– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
2
2
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
This adds nothing to the existing answers...
– jasonwryan
Jan 30 '17 at 6:11
@jasonwryan Actually Hai Vu's answer mentions
:set autoindent which enables auto indent only for the current file. Adding it in the .vimrc file enables auto indent permanently.– Akshat Maheshwari
Jan 30 '17 at 7:12
@jasonwryan Actually Hai Vu's answer mentions
:set autoindent which enables auto indent only for the current file. Adding it in the .vimrc file enables auto indent permanently.– Akshat Maheshwari
Jan 30 '17 at 7:12
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
your piece of comment is already mentioned by Rahul's answer, so think before posting
– Indrajeet Gour
May 8 '17 at 9:25
add a comment |
vim's autoformat/indent works pretty well. First, put this line in your ~/.vimrc:
filetype plugin indent on
Then open a file in vim and type gg=G
(gg moves cursor to the first line. = runs the indent command. G tells indent command to run from here to the last line.)
If the autoformat looks really bad, like every line is just left indented, then run :scriptnames and check if .../indent/html.vim (or whatever language you're using) is in the list. If not, then make sure your ~/.vimrc is correct. Or if you ran :filetype plugin indent on from the vim command line, you will need to re-open the file :e
add a comment |
vim's autoformat/indent works pretty well. First, put this line in your ~/.vimrc:
filetype plugin indent on
Then open a file in vim and type gg=G
(gg moves cursor to the first line. = runs the indent command. G tells indent command to run from here to the last line.)
If the autoformat looks really bad, like every line is just left indented, then run :scriptnames and check if .../indent/html.vim (or whatever language you're using) is in the list. If not, then make sure your ~/.vimrc is correct. Or if you ran :filetype plugin indent on from the vim command line, you will need to re-open the file :e
add a comment |
vim's autoformat/indent works pretty well. First, put this line in your ~/.vimrc:
filetype plugin indent on
Then open a file in vim and type gg=G
(gg moves cursor to the first line. = runs the indent command. G tells indent command to run from here to the last line.)
If the autoformat looks really bad, like every line is just left indented, then run :scriptnames and check if .../indent/html.vim (or whatever language you're using) is in the list. If not, then make sure your ~/.vimrc is correct. Or if you ran :filetype plugin indent on from the vim command line, you will need to re-open the file :e
vim's autoformat/indent works pretty well. First, put this line in your ~/.vimrc:
filetype plugin indent on
Then open a file in vim and type gg=G
(gg moves cursor to the first line. = runs the indent command. G tells indent command to run from here to the last line.)
If the autoformat looks really bad, like every line is just left indented, then run :scriptnames and check if .../indent/html.vim (or whatever language you're using) is in the list. If not, then make sure your ~/.vimrc is correct. Or if you ran :filetype plugin indent on from the vim command line, you will need to re-open the file :e
answered Jun 22 '18 at 18:40
wisbuckywisbucky
698810
698810
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.
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%2f19945%2fauto-indent-format-code-for-vim%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
Could you clarify what language you are trying to indent? I would expect that if it's supported by vim already it should already auto-indent without further effort. If not, you should be able to get a plugin.
– Edd Steel
Sep 1 '11 at 22:37
ideally Html/css and php
– chrisjlee
Sep 1 '11 at 23:50