我听过很多关于Vim的消息,包括优点和缺点.看起来你应该(作为开发人员)使用Vim比使用任何其他编辑器更快.我正在使用Vim来做一些基本的东西,而且我最好用Vim的效率低 10倍.
当你谈论速度时你应该关心的两件事(你可能不太关心它们,但你应该这么做)是:
这里有两个例子,说明为什么我对Vim的效率低得多.
复制/剪切和粘贴.我一直这样做.使用所有当代编辑器,您可以Shift 用左手按下,然后用右手移动光标以选择文本.然后Ctrl+ C副本,你移动光标和Ctrl+ V贴.
有了Vim,它太可怕了:
yy 复制一行(你几乎不想要整行!)[number xx]yy将xx行复制到缓冲区中.但你永远不知道你是否选择了你想要的东西.我经常做的[number xx]dd,然后u撤消!另一个例子?搜索和替换.
/,然后键入要搜索的内容,然后如果\在每个特殊字符前放置了一些特殊字符,则按Enter.与Vim的一切都是这样的:似乎我不知道如何以正确的方式处理它.
我的问题是:
你使用Vim的方式是什么让你比现代编辑更有效率?
在PyCharm中,当我写道:
return set([(sy + ady, sx + adx)])
Run Code Online (Sandbox Code Playgroud)
它说"函数调用可以用set literal替换",所以它替换为:
return {(sy + ady, sx + adx)}
Run Code Online (Sandbox Code Playgroud)
这是为什么?set()Python中的A 与字典不一样{}?
如果它想要优化它,为什么这更有效?
如果我理解正确,我需要放入一些东西httpd.config来启用mod_rewrite.如果这是真的,我需要什么就摆在httpd.conf或apache.conf?请具体操作系统.
在下面的代码中,为什么与float.Epsilon进行比较而不是0?
// Coroutine to move elements
protected IEnumerator SmoothMovement (Vector3 end)
{
// Distance computation
float sqrRemainingDistance = (transform.position - end).sqrMagnitude;
while(sqrRemainingDistance > float.Epsilon)
{
Vector3 newPostion = Vector3.MoveTowards(
rb2D.position, end, inverseMoveTime * Time.deltaTime
);
rb2D.MovePosition (newPostion);
sqrRemainingDistance = (transform.position - end).sqrMagnitude;
yield return null;
}
}
Run Code Online (Sandbox Code Playgroud) 从维基百科复制粘贴到vim之后,我得到了这个:
1 A
2
3 [+] Métier agricole<200e> – 44 P • 2 C
4 [×] Métier de l'ameublement<200e> – 10 P
5 [×] Métier de l'animation<200e> – 5 P
6 [+] Métier en rapport avec l'art<200e> – 11 P • 4 C
7 [×] Métier en rapport avec l'automobile<200e> – 10 P
8 [×] Métier de l'aéronautique<200e> – 15 P
Run Code Online (Sandbox Code Playgroud)
问题是,这<200e>只是一个字符.
我想知道如何将它放入搜索/替换(通过/或:).
我想F2用以下条目映射我的nerdtree:
map <F2> :NERDTreeToggle<CR>
Run Code Online (Sandbox Code Playgroud)
但即使在此之前,并且在保存vimrc之后,每当我按下时F2,它只会切换光标所在字母的大小写.后来发现任何功能键都能做到.F5切换5个字符的大小写等.这是因为其他一些插件吗?我目前使用c.vim,snippetsEmu,surround,nerdtree和minibufexpl
我的vimrc中的任何功能键都没有键映射.
我是七年级的程序员,所以我可能在这个程序中遗漏了很多东西,但是对于我的编码俱乐部,我的导师让我们猜猜数字游戏.我对这个课程的知识非常有限,因为我只上过四节课.无论如何,当我在Python IDLE 3.5中运行这个程序时,它就是这样说的:
Traceback (most recent call last):
File "C:\Users\morrris\AppData\Local\Programs\Python\Python35-32\guess_that_number.py", line 7, in <module>
name= raw_input()
NameError: name 'raw_input' is not defined
Run Code Online (Sandbox Code Playgroud)
我尝试更改代码,但似乎不喜欢raw_input().
有什么区别
foreach ($my_array as $my_value) {
}
Run Code Online (Sandbox Code Playgroud)
和:
foreach ($my_array as &$my_value) {
}
Run Code Online (Sandbox Code Playgroud)
?
我可以请你给我两个真实世界的例子,说明何时使用另一个以及何时使用另一个?
我有一个代码,我必须"舍入"到最低分钟.
16:05:00 应该成为 16:05:0016:05:01 应该成为 16:05:0016:05:29 应该成为 16:05:0016:05:30 应该成为 16:05:0016:05:31 应该成为 16:05:0016:05:59 应该成为 16:05:00我想使用DateTime对象.没有诸如以下的功能:
setHours()setMinutes()setSeconds()这是我的代码的开头:
$my_date=DateTime::createFromFormat(
'Y-m-d H:i:s',
$bd_date
);
$my_date->setTimezone(self::$TimeZone);
Run Code Online (Sandbox Code Playgroud)
现在我想将"秒"部分设置为零.
你有一种优雅的方式,只按照我想要的方式设置分钟吗?
Nota:我不是在寻找像"除以getTime()60,转换为整数,然后乘以60"的解决方案.我正在寻找一种通用的解决方案来设置秒数,而不仅仅是"0".
在我能找到的几乎所有示例/模板脚本中,我event.preventDefault();在函数的末尾看到,如下所示:
$('.navbar-nav li a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
从我的观点来看,这个想法是"立即停止默认行为然后做我们必须做的事情",如下所示:
$('.navbar-nav li a').bind('click', function(event) {
event.preventDefault();
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
});
Run Code Online (Sandbox Code Playgroud)
那我错过了什么?