Goland 快捷键整理

Mac 键盘符号说明

Delete, Escape (Esc) 右制表符(Tab键)Home Fn + ← Page Up(Fn+↑)
向前删除键(Fn+Delete) 左制表符(Shift+Tab)End Fn + → Page Down(Fn+↓)

Shortcuts 捷径

快捷键说明快捷键说明快捷键说明
⌃⇧Space代码自动补齐⌘N,^↩︎生成代码⇧F6重命名
Double⇧全局搜索⌘P参数信息⌘↩︎尝试快速修复
⌥⌘↓收缩选择⌥⌘↑扩展选择⌘E近期修改过的文件

General 常用

快捷键说明快捷键说明
⌘1...⌘9开启或关闭对应的工具窗口,使用最多的一般是:⌘1⌘9⌘⌥Y同步
⌘S手动保存全部修改,其实不小心关闭了东西也不会丢的⌘,设置
⌘⇧F12编辑窗口最大化、最小化⌘⇧A按行为动作查找
⌥⇧I⌘;项目结构窗口
·⌃§,⌃切换主题、代码样式之类的

Usage Search 变量搜索

快捷键功能说明
⌘F7/⌥F7Find usages / Find usages in file查找哪些地方使用到了
⌘⇧F7Highlight usages in file文件内使用到的地方高亮展示
⌘⌥F7Show usages展示哪里调用过

Search / Replace 搜索/替换

内容搜索很强大,可与正则配合查找或者替换,很方便

快捷键说明快捷键说明
⌘G/⌘⇧G按选择字符查找下一个/上一个⌘R替换字符
⌘⇧F按工作区/项目/路径查找字符串⌘F文件内查找
⌘⇧R按工作区/项目/路径替换字符串Double⇧全局搜索
^G选择下一个所选文本内容,可同时编辑
^⌘G选择全部相同字符的文本内容,可同时编辑
^G取消批量选择,好像不好使,而且 ESC 就可以取消了

Editing 文本编辑

快捷键说明快捷键说明
^Space基础代码完成^⌥I自动缩进行
^⇧Space智能代码完成⇥/⇧⇥缩进行/取消缩进
⌘P参数信息⌘X剪切行到剪贴板,光标所在行什么也没选择的话
^J文档查看⌘C复制行
⇧F1外部文档⌘V粘贴
⌘+mouse概要信息⌘⇧V从最近的缓冲区粘贴
⌘F1光标处显示错误提醒⌘D复制行
⌘N,^↩生成代码⌘⌫删除行
^O覆盖方法^⇧J多行合并成一行
^I实现接口方法⌘↩一行分割为多行
⌘/注释行代码⇧↩新起一行,而不用到行尾再敲回车
⌘⌥/解开注释⌘⇧U大小写切换
⌥↑扩展选择⌘⇧]/⌘⇧[代码块选择
⌥↓收缩选择⌥⌦删除至单词结束处
^⇧Q上下文信息⌥⌫删除至单词开始处
⌥↩快速修复提示⌘+/⌘-折叠/展开代码
⌘⌥L重新格式化⌘⇧+折叠的全部展开
^⌥O选择性的导入包⌘⇧-全部折叠
⌘w圈闭当前编辑窗口⌘⌥T嵌入代码块,比如:try…catch,for,if 之类的
⌘⇧↩ ︎完成语句,会自动加分号等

Navigation 导航

快捷键说明快捷键说明
⌘O搜索类^⇧B跳转到定义的方法
⌘⇧O搜索文件⌘U跳转到父级方法/父类
⌘⌥O搜索符号↑/方法上一个、下一个
⌥Home展示导航栏⌘]/⌘[跳转代码块结束/开始处
F3设置/取消书签⌘F12文件结构弹框
0…9跳转到书签编号0~9^H类层次结构
⌥F3Toggle bookmark with mnemonic⌥F1Select current file or symbol in any view
⌘F3展示书签⌘⇧H方法调用层次结构
⌘L跳转到某行^⌥H调用层次结构
⌘E最近编辑过的文件列表F2/⇧F2跳转到下一个错误的地方,可快速定位哪块有错误提示
⌘B,⌘Click跳转到定义行F4/⌘↓进入源码文件,比如 svn diff 的时候很方便
⌘⌥B进入接口实现方法⌘⇧⌫跳转到最后的编辑位置,很有用
⌥Space,⌘YOpen quick definition lookup←/下一个/上一个编辑窗口
Go to editor (from tool window)F12进入到上次的工具窗口
⇧⎋Hide active or last active window⌘⌥←/⌘⌥→Navigate back / forward
<think>嗯,用户遇到了Goland中文件变为只读的问题,想要解决方案。首先,我需要回忆一下Goland的文件权限管理和操作系统相关的知识。Goland本身是基于IntelliJ平台的,所以可能和文件权限设置有关。 用户提到文件变成只读,可能的原因有几个。首先,文件在磁盘上的属性可能被设置为只读,尤其是在Windows系统下,右键属性里可能有只读的复选框。如果是这种情况,用户需要去文件属性里取消只读属性。不过需要注意,Windows的文件夹级别只读属性有时会有不同的表现,可能需要检查具体文件的属性。 其次,可能是Goland的项目配置问题。比如,如果文件所在的目录被标记为排除(Excluded),或者版本控制系统(如Git)将文件设为只读,这时候Goland可能会以只读模式打开。需要检查项目的设置,确认文件是否在正确的源目录下,而不是被排除的目录。另外,如果文件受版本控制,可能需要检查Git的配置,是否有文件权限被锁定。 另外,用户提供的引用中有提到Go语言中使用os.OpenFile函数来写文件,这可能涉及到文件打开时的标志位。比如,如果使用只读模式打开文件,自然无法写入。不过用户的问题更偏向于IDE中的文件状态,而不是代码中的文件操作。但代码中的错误也可能导致文件被锁定,比如在程序中打开文件后没有正确关闭,导致文件句柄未释放,这时候操作系统可能会阻止其他程序修改文件。需要检查是否有正在运行的程序占用了该文件。 还有用户提到的引用3中,Python使用with语句管理文件,自动处理文件的关闭,这可能提示用户检查是否有未正确关闭文件的情况,但如果是Go代码,可能需要检查defer语句是否用于关闭文件。例如,在Go中写文件时,应该确保在打开文件后使用defer file.Close(),以便在函数退出时关闭文件,释放资源。 另外,用户提供的引用2显示了一个Go项目的构建路径,可能涉及文件权限问题。如果构建输出的文件被设置为只读,或者目标目录的权限不足,Goland可能无法修改这些文件。需要检查构建输出目录的权限,确保Goland有写入权限。 总结一下,可能的解决方案包括:检查文件属性中的只读标记,确保Goland有足够的权限;检查项目配置,确认文件未被排除或版本控制锁定;检查是否有程序未释放文件句柄;以及检查目录权限是否正确。 接下来,需要将这些思路整理成步骤,帮助用户逐步排查问题。比如,第一步检查文件属性,第二步检查项目配置,第三步检查版本控制状态,第四步检查文件是否被其他进程占用,第五步检查目录权限,最后尝试重启IDE或系统。同时,可能需要指导用户如何在Goland中重新加载文件或使文件可写,比如使用“File | Reload from Disk”或者右键菜单中的“Make File Writable”选项。不过Goland是否有直接的“Make File Writable”功能呢?可能需要确认,或者用户需要手动修改文件属性。 此外,用户的问题可能涉及到操作系统层面的权限,比如在Linux或macOS下,需要使用chmod命令修改文件权限,而在Windows下则需要通过属性对话框修改。需要根据用户的系统提供相应的操作步骤。 最后,可能需要提醒用户,如果文件是受版本控制的,比如Git,那么文件的只读状态可能由版本控制工具管理,需要解除锁定或提交更改后才能修改。</think>在GoLand中解决文件变为只读的问题,可以按以下步骤排查和修复: ### 1. 检查文件系统权限 - **Windows系统**:右键文件 → 属性 → 取消勾选“只读” → 应用[^1]。 - **Linux/macOS**:在终端执行: ```bash chmod +w filename.go ``` 若需递归修改目录权限: ```bash chmod -R +w directory/ ``` ### 2. 检查IDE配置 - **排除目录设置**:右击项目目录 → `Mark Directory as` → 确认未标记为`Excluded`。 - **重新加载文件**:菜单栏选择`File` → `Reload from Disk`(若文件被外部修改)[^2]。 ### 3. 版本控制状态 - **Git管理文件**:若文件处于`只读索引`状态,提交或撤销更改: ```bash git checkout -- filename.go # 撤销未提交的修改 git update-index --assume-unchanged filename.go # 忽略跟踪(慎用) ``` ### 4. 文件占用锁定 - **Windows资源监视器**:搜索`资源监视器` → `CPU`标签 → 关联句柄输入文件名 → 结束占用进程。 - **Linux/macOS**:通过`lsof`命令查找占用进程: ```bash lsof filename.go kill -9 PID # 终止对应进程 ``` ### 5. 目录权限验证 确保项目目录的父级路径(如`C:\Users\Administrator\`)具有写入权限。可通过命令行验证: ```bash touch testfile # Linux/macOS echo test > testfile.txt # Windows(需管理员权限) ``` ### 6. 重启与缓存清理 - **重启GoLand**:关闭IDE后重新打开。 - **清除缓存**:`File` → `Invalidate Caches` → 勾选清除选项 → 重启。 --- ### 代码示例:Go文件写入权限检查 若代码中涉及文件操作,需确认`os.OpenFile`标志位正确: ```go file, err := os.OpenFile("data.txt", os.O_WRONLY|os.O_CREATE, 0666) if err != nil { log.Fatal(err) } defer file.Close() // 确保释放文件句柄 _, err = file.WriteString("test") ``` 此处`os.O_WRONLY`表示可写模式,`0666`为文件权限(Unix系系统)[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值