在 Python IDE Spyder 中,我经常在按下 时<enter>遇到自动缩进的问题,尽管我已经禁用了尽可能多的缩进功能(工具?首选项?编辑器?高级设置)。这包括使用嵌套括号时不希望出现的深度缩进,以及在少数情况下完全错误。一个例子是
if True: # <enter>, <tab>
x = f(
a = lengthy_expression, # automatic indentation undesirably deep
b = lengthy_expression)
Run Code Online (Sandbox Code Playgroud)
或从 Spyder 3.1.1 开始
assert f(x) == 1
wrongly_indented_statement()
Run Code Online (Sandbox Code Playgroud)
我宁愿让自动缩进简单地保留前一行的缩进级别,为用户留下多行表达式的额外缩进,例如
if True: # <enter>, <tab>
x = f( # <enter>, <tab>
a = lengthy_expression, # <enter>
b = lengthy_expression) # <enter>
Run Code Online (Sandbox Code Playgroud)
spyder 中是否有这种“简单的自动缩进”模式?
当我写下 HTML 标签\xef\xbc\x8clike 时:
\n\n\xc2\xb7\xc2\xb7\xc2\xb7\n<div></div>\n\xc2\xb7\xc2\xb7\xc2\xb7\nRun Code Online (Sandbox Code Playgroud)\n\n然后按下Enter之间><,VSCode 总是自动添加新行和缩进,那么结果是:
\xc2\xb7\xc2\xb7\xc2\xb7\n<div>\n (\xe2\x86\x90 here have an indent)\n</div>\n\xc2\xb7\xc2\xb7\xc2\xb7\nRun Code Online (Sandbox Code Playgroud)\n\n如何阻止 VSCode 操作?
\n在Visual Studio中,当我按Enter键时,它会自动缩进我的文本,我不喜欢这样.有没有办法关闭'功能'?
对于具有冒号的初始化程序的分配器,Emacs没有正确地缩进C++类定义.我认为这是因为在许多情况下,带冒号的线条是左缩进的.
我想解决这个问题.
这是我正在谈论的一个例子.
EMACS缩进代码如下:
class demo {
int x;
demo(){
}
demo(int y):x(y){
};
};
Run Code Online (Sandbox Code Playgroud)
但它应该像这样缩进:
class demo {
int x;
demo(){
}
demo(int y):x(y){
};
};
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?想必我们需要一些elisp ......
谢谢!
Vim不会自动执行我正在处理的C源文件,虽然它声称当我输入:set命令时启用了autoindent和cindent选项.当我输入一些代码时,什么也没发生.比如写作
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
"返回0;" 声明留在左边.但是,如果我键入"= G"命令,我的文件将缩进.
这是我的配置:
vimrc分为/ etc/vim/vimrc和〜/ .vimrc.连接内容如下:
runtime! debian.vim
if has("syntax")
syntax on
endif
set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
if has("autocmd")
filetype plugin indent on
endif
set showcmd
set showmatch
if filereadable("/etc/vim/vimrc.local")
source …Run Code Online (Sandbox Code Playgroud) 我使用制表符进行缩进,但我工作的商店使用四个空格,两个空格和制表符不一致(但在每个文件中一致)是否有办法让phpstorm按现有代码缩进?
在Emacs 24.4中,默认缩进行为已更改 - 现在新行自动缩进.从发行说明:
*** `electric-indent-mode' is now enabled by default.
Typing RET reindents the current line and indents the new line.
`C-j' inserts a newline but does not indent. In some programming modes,
additional characters are electric (eg `{').
Run Code Online (Sandbox Code Playgroud)
我更喜欢旧的行为,所以我补充道
(electric-indent-mode 0)
Run Code Online (Sandbox Code Playgroud)
到我的.emacs档案.但是,这会禁用所有电子角色,这不是我想要的.
是否有任何方法可以禁用新行为,同时仍然有像'{'或':'这样的字符触发缩进?
请注意,这与/和剪贴板无关。我说的是完全在 vim 中复制和粘贴 ( , , )。:paste:nopastedyp
将代码块从外部块复制并粘贴到内部块中是很常见的。不幸的是,缩进仍然位于外部块的水平,我必须随后缩进它。
我想做的是从:
function foo() {
}
var bar;
var bazz;
Run Code Online (Sandbox Code Playgroud)
到
function foo() {
var bar;
var bazz;
}
Run Code Online (Sandbox Code Playgroud)
在 vim 中我通常做的是:
1)去线
2)切换到可视模式
3)突出显示行
4)dd删除行
5) 向上移动光标
6)P粘贴
7)进入可视模式
8)突出显示行
9)>>缩进行
我希望它自动缩进到正确的位置。如果我不需要重新突出显示行然后手动缩进,这将是一个更加顺畅的工作流程。换句话说,消除步骤 7-9。
有人知道有办法做到这一点吗?
自动缩进行不正确地移动重定向构造函数的缩进。
自动缩进的结果如下。
Project.getInbox()
??: this.update(
??foo: 1,
??bar: 2,
??baz: 3);
Run Code Online (Sandbox Code Playgroud)
我想要的结果如下。
Project.getInbox()
: this.update(
foo: 1,
bar: 2,
baz: 3);
Run Code Online (Sandbox Code Playgroud)
此致,