经过多次尝试和错误后,我发现最不糟糕的设置是使用这些插件:
然后是我的 coc-settings.json:
{
"coc.preferences.formatOnSaveFiletypes": [
"css",
"typescript",
"javascript",
"markdown",
"scss",
"json"
],
"prettier.disableSuccessMessage": true,
"tslint.autoFixOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
不过这个设置还是有欠缺。
TS 自动完成功能效果不佳,并且无法或多或少地自动建议类型。我记得一位同事在他们的 VSCode 上向我展示了编辑器如何建议非类型化变量的类型,他只需按自动完成键即可使用它。那样就好了。
我在状态行中收到大部分 TS 错误,但在某些情况下可能需要一段时间才能显示:我会得到>>
显示存在错误的标记,但在状态行中显示实际错误可能需要 10秒。
当在变量上时,按下K
只会带来适度有用的部分类型定义。我更愿意获得完整的定义,这样我就知道特定函数需要什么参数。
Prettier 确实不太擅长格式化 HTML 文件
当自动完成自动导入的变量名称时,我只得到一个包含名称的列表...而不是在哪个库中找到它们。例如,ramda
和之间有很多重叠,所以当我使用自动完成功能导入某些内容时,rxjs
我永远不知道我得到的是哪一个,直到我返回导入列表并查看它是否使用了正确的列表
我觉得我当前的设置远没有达到应有的水平,而且我正在努力在网上寻找可以涵盖所有内容的设置。我想知道其他人如何设置 vim 以获得愉快且流畅的 TS 体验:我不想使用 VSCode 只是为了让 TS 不受影响。
我正在为 Jekyll使用午夜主题。Jekyll 目前是 v3.7.4
我的主题是指捆绑的 OpenSans webfont,我还添加了 FontAwesome。但是浏览器只会请求 OpenSans 字体,而不会请求 FontAwesome 文件。
在我的页面的头部(编译):
<!-- theme -->
<link rel="stylesheet" href="/assets/css/style.css?v=e16a158">
<!-- theme overrides -->
<link rel="stylesheet" href="/assets/css/hello.css?v=e16a158">
Run Code Online (Sandbox Code Playgroud)
未编译:
<!-- theme -->
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.data['hash'] | relative_url }}">
<!-- theme overrides -->
<link rel="stylesheet" href="{{ '/assets/css/hello.css?v=' | append: site.data['hash'] | relative_url }}">
Run Code Online (Sandbox Code Playgroud)
hello.scss
是我自定义样式的地方。前两行是根据FontAwesome 说明:
---
---
@import "./vendor/fontawesome/fontawesome.scss";
@import "./vendor/fontawesome/brands.scss";
Run Code Online (Sandbox Code Playgroud)
编译后的 CSS(位于/assets/css
)包括:
@charset "UTF-8";
/*!
* Font Awesome Free 5.13.0 by …
Run Code Online (Sandbox Code Playgroud) 使用 vim 8、Ultisnips 和 coc-ultisnips。
考虑这个片段:
snippet cdeg "Add console.debug({})"
console.debug(${0:${VISUAL:value}})
endsnippet
Run Code Online (Sandbox Code Playgroud)
我希望它扩展cdeg
到console.debug(value)
.
问题是如果我有那个缓冲区:
hello
Run Code Online (Sandbox Code Playgroud)
然后视觉选择hello
,按下C
替换它,cdeg
然后展开。我希望缓冲区看起来像这样:
console.debug(hello)
Run Code Online (Sandbox Code Playgroud)
但相反,我得到
console.debug(value)
Run Code Online (Sandbox Code Playgroud)
所以它似乎${VISUAL}
对coc-ultisnips
. 知道发生了什么,以及如何coc-ultisnips
像 UltiSnips 那样表现${VISUAL}
?
使用 OpenSSH,我已将我的设置设置/etc/ssh/ssh_config
为一个,ProxyCommand
以便所有 SSH 连接都通过该代理。
/etc/ssh/ssh_config
:
Host *
ProxyCommand nc -X connect -x localhost:8111 %h %p
Run Code Online (Sandbox Code Playgroud)
但我想禁用一台特定 SSH 主机的代理。
我已将以下内容添加到我的~/.ssh/config
:
Host ssh.example.org
HostName ssh.example.org
ProxyCommand ""
Run Code Online (Sandbox Code Playgroud)
我应该放什么,ProxyCommand
以便它不只为该特定主机使用代理,但默认情况下仍然通过代理进行 SSH 连接?
我有一个Extractor
有Playlist
方法的接口:
// extractor.go
package extractor
type Extractor interface {
Playlist(timestampFrom int64) (playlist.Tracklist, error)
}
Run Code Online (Sandbox Code Playgroud)
我在另一个包中使用这个接口:
// fip.go
package fip
type Extractor struct {
}
func (extractor Extractor) Playlist(timestampFrom int64) ([]playlist.Track, error) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我想展示一个有关如何使用Playlist
该fip
包的方法的示例:
// fip_test.go
package fip
func ExamplePlaylist() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但go vet
显示此错误:
fip/extractor_test.go:82:1: ExamplePlaylist refers to unknown identifier: Playlist
我不明白为什么...Playlist
确实作为包中的方法存在fip
。我缺少什么?
如果需要更多上下文,请参阅以下文件及其完整源代码:
https://github.com/coaxis/tizinger/blob/8016d52a1278cf44dde13d518c6a15a18cb29774/fip/fip.go
https://github.com/coaxis/tizinger/blob/8016d52a1278cf44dde13d518c6a15a18cb29774/fip/fip_test.go