我正在设置我的vimrc文件.我理解添加set backspace=indent,eol,start允许退格键在插入模式下"正常"(删除缩进,换行符,预先存在的字符),但是我很困惑我是否需要将此行添加到我的文件中,或者它是否是默认行为.
即使没有vimrc文件,我也尝试在没有该行的情况下运行Vim,并且退格仍然正常工作.我应该提一下,我在MacBook上,键实际上标记为"删除",但我认为这是无关紧要的.
我正在构建一个具有属性的对象,该属性的值在实例化时随机生成.该属性将不时被赋予一个新值(也是随机的),所以我正在定义一个方法来执行此操作.通过从内部调用该方法初始化属性是不好的形式__init__?这很容易避免 - 我只需复制少量代码 - 但调用该方法似乎更优雅.这是一个例子:
import random
class Robot(object):
def __init__(self):
self.setDirection()
def setDirection(self):
self.direction = random.random() * 360
Run Code Online (Sandbox Code Playgroud) 我能找到的所有文档都指向HEAD并且我多次听说它区分大小写.我能做的事情,比如,
git log head...merge_head
Run Code Online (Sandbox Code Playgroud)
它的工作原理就像
git log HEAD...MERGE_HEAD
Run Code Online (Sandbox Code Playgroud)
这是由于我在本地设置中的一些自定义,我不知道,或者它只是一个没有记录的功能(可能是为了阻止这种做法)?
我有一个成长和成长的特征分支,随着特征的发展,有许多曲折.我想把一些单独可释放的块分解成它们自己的分支.
提交不够干净,不能通过提交选择来构建这样的分支(即一些提交触摸多个文件,其中只有一些我想选择).我是一个灵巧的交互式变形,大块编辑等等,但我想知道是否有更好的方法来做到这一点?
我最初的想法是创建一个分支,它是原始功能分支的副本,将它的所有提交压缩为1,重置为上一次提交(在我的工作树中保留完整的未提交的,未分级的功能分支),然后有选择地添加和提交我想要的碎片.
$ git co -b partial-feature
$ git rebase -i HEAD~170
Run Code Online (Sandbox Code Playgroud)
在编辑器中:
pick 234e78fa Begin writing feature
f 7844c437 Add more stuff
f 3523437 And even more
...
Run Code Online (Sandbox Code Playgroud)
然后,
$ git reset HEAD~
$ git add first_good_change.rb
$ git commit -m 'Add a good change'
$ git add second_good_change.rb
$ git commit -m 'Add another good change'
...
Run Code Online (Sandbox Code Playgroud)
有更聪明的方法吗?
我已经看到了很多示例,这些示例main调用递归调用自身的帮助函数,例如
main = loop
where
loop = do
putStrLn "I'm in a loop"
loop
Run Code Online (Sandbox Code Playgroud)
我从未见过main递归调用自身的情况,例如
main = do
putStrLn "I'm in a loop"
main
Run Code Online (Sandbox Code Playgroud)
不过,它似乎运行良好,这让我想知道为什么我从未见过它。是否被认为是非习惯用语?它会改变编译后的程序吗?
我正在使用 QuickCheck 生成任意函数,并且我想生成任意单射函数(即f a == f b当且仅当a == b)。
我以为我已经弄清楚了:
newtype Injective = Injective (Fun Word Char) deriving Show
instance Arbitrary Injective where
arbitrary = fmap Injective fun
where
fun :: Gen (Fun Word Char)
fun = do
a <- arbitrary
b <- arbitrary
arbitrary `suchThat` \(Fn f) ->
(f a /= f b) || (a == b)
Run Code Online (Sandbox Code Playgroud)
但是我看到生成的函数将不同的输入映射到相同的输出的情况。
我想要的是:
我正在尝试使用radio_button_tag来生成单选按钮标记,例如:
<input type="radio" ... required>
Run Code Online (Sandbox Code Playgroud)
为了添加表单验证(我正在使用Foundation并尝试使用Abide库)。我能得到的最接近的是:
radio_button_tag 'my_radio', ... , required: ''
# => <input type="radio" ... required="required">
Run Code Online (Sandbox Code Playgroud)
这对于Abide来说似乎已经足够好了,但是有没有办法让我从Rails助手中得到想要的东西?我试过required: true了,required: ''但是它的表现是一样的。
我已经看到一些例子,人们给scanf一个"%[^\n]\n"格式字符串来读取整行用户输入.如果我的理解是正确的,这将读取每个字符,直到到达换行符,然后新行被scanf消耗(并且不包括在结果输入中).
但我不能让这个在我的机器上工作.我试过的一个简单例子:
#include <stdio.h>
int main(void)
{
char input[64];
printf("Enter some input: ");
scanf("%[^\n]\n", input);
printf("You entered %s\n", input);
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我被提示输入,我输入一些字符,我按Enter键,光标转到下一行的开头,但scanf调用没有完成.
我可以随心所欲地按Enter键,但它永远不会完成.
我发现结束scanf调用的唯一方法是:
\n在提示符下输入第一个(也是唯一的)字符\n,零个或多个其他字符,然后输入Ctrl-d我不知道这是否依赖于机器,但我很想知道发生了什么.我在OS X上,如果那是相关的.
使用Ag.vim插件,您可以通过:Ag不带任何参数调用轻松搜索光标下的单词,但如何将光标下的单词作为搜索模式的一部分包含在内?我正在尝试向我的vimrc添加一些内容来搜索Ruby文件中的方法定义.就像是:
autocmd FileType ruby noremap K :Ag! "\bdef <C-R><C-W>\b"<CR>
Run Code Online (Sandbox Code Playgroud)
它不承认<C-R><C-W>.另外,我都试过\b和\<,\>作为单词边界.股份公司使用\b的Vim的范围之外,但我知道它转化\<并\>以\b在某些情况下(不知道这种情况下,虽然).
我正在阅读有关如何解析和编译 Ruby 的信息,我想查看正在使用的 parse.y 文件。我还没有设法在我的系统(OS X)上的任何地方找到它。我试过find / -name parse.y没有任何运气。
运行ruby -y myfile.rb显示正在使用的 parse.y 中的行号,这让我认为它确实存在于某处,我只是不知道在哪里。我在线查看了parse.y,但我想查看我的本地副本。
例如,给定:
# myfile.rb
puts 'hi'
Run Code Online (Sandbox Code Playgroud)
当我运行时ruby -y myfile.rb,我看到:
Starting parse
Entering state 0
Reducing stack by rule 1 (line 859):
...
Run Code Online (Sandbox Code Playgroud)
我一直假设行号,如上面的 859,指的是 parse.y 中的行。不是这样吗?