栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PyCharm动态代码模板Live Template

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PyCharm动态代码模板Live Template

文章目录
  • 简介
  • 安装
  • 初试
  • 内置模板
  • 动态模板变量
  • 带参数的装饰器模板
  • 保存和加载
  • 定义类
  • 定义方法
    • defm
    • defc
    • defs
  • 批量设置参数
  • 一些模板
  • TODO
  • 参考文献

简介

PyCharm 是 Python 的最强 IDE,熟练掌握动态代码模板 Live Template 让编程效率事半功倍




安装

PyCharm 下载

  • Professional:专业版,收费
  • Community:社区版,免费




初试

File → Settings → Editor → Live Templates → 选中Python → 点+号 → Live Template

Abbreviation:缩写,用于快速输入

如定义一个简单的列表推导式

效果




内置模板

灵活切换快捷键:

  • EnterTab:下一个光标
  • Shift + Tab:上一个光标
  • Esc:取消提示




1. 字典推导式 compd

2. 带 if 字典推导式 compdi

3. 生成器推导式 compg

4. 带 if 生成器推导式 compgi

5. 列表推导式 compl

6. 带 if 列表推导式 compli

7. 集合推导式 comps

8. 带 if 集合推导式 compsi

9. for…in…循环 iter

10. for…in enumerate…循环 itere

11. main

12. 获取属性 prop

13. 获取设置属性 props

14. 获取设置删除属性 propsd

15. 调用父类方法 super




动态模板变量

由 Edit variables 里指定

参数含义例子
$END$光标所在位置main
$SELECTION$选中区域
blockCommentEnd()返回当前上下文中块注释结束的字符
blockCommentStart()返回当前上下文中块注释开始的字符
camelCase()将字符串转换为驼峰形式
capitalize()字符串首字母大写
capitalizeAndUnderscore()字符串首字母大写并用下划线连接
clipboard()返回系统剪贴板内容
collectionElementName()移除_list和s结尾
commentEnd()返回当前上下文中注释结束的字符
commentStart()返回当前上下文中注释开始的字符
complete()在变量的位置调用代码完成
completeSmart()在变量的位置调用智能代码完成
concat(, …)拼接字符串
date([format])返回当前系统日期date(“Y-MM-d, E, H:m”)
dbColumns()
dbObjectName()
decapitalize()字符串首字母小写
defaultReturnValues
djangoBlock
djangoFilter
djangoTemplateTags
djangoVariable
enum(, …)
escapeString()转义特殊字符
expectedType()
fileName()返回当前文件名
fileNameWithoutExtension()返回当前文件名(不带扩展名)
filePath()返回当前文件绝对路径
fileRelativePath()返回当前文件相对路径
firstWord()返回字符串的第一个单词
groovyscript(, [arg, …])执行Groovy脚本见下文

例子:

Template text

print('$var$', $cam$)

Edit variables 中设置 cam 的 expression 为 camelCase(var)




带参数的装饰器模板
def decorator(arg1, arg2):
    def wrapper(func):
        def deco(*args, **kwargs):
            $END$
            func(*args, **kwargs)
        return deco
    return wrapper




保存和加载

保存单个:右键 → Copy

动态代码模板文件存放在:%homepath%PyCharm目录templatesPython.xml

如本人的为:

C:UsersAdministratorAppDataRoamingJetBrainsPyCharm2020.3templatesPython.xml




定义类

Template text

class $ClassName$($Object$):
    """$Docstring$"""
    def __init__(self, $Arg$):
        $Super$
        self.$Arg$ = $Arg$
    $Code$
$END$

Edit variables

效果(Tab 或 回车换到下一个变量)




定义方法 defm

Define method

def $name$(self, $arg$):
    """$doc$"""
    $END$
defc

Define classmethod

@classmethod
def $name$(cls, $arg$):
    """$doc$"""
    $END$
defs

Define staticmethod

@staticmethod
def $name$($arg$):
    """$doc$"""
    $END$




批量设置参数
AbbreviationDescriptionTemplate text功能
bsBatch set variable$var$批量设置self参数
dbsDot batch set variable$a$$var$批量设置.参数

Edit variables → var 的 expression

groovyscript("def result=''; _1.split(', ').each{i -> result+='self.'+i+' = '+i+System.lineSeparator()}; return result;", clipboard());
// groovyscript("def result=''; def params="${_1}".split(', '); for(String i: params) {result+='self.'+i+' = '+i+'\n';}; return result;",  clipboard())
groovyscript("def result=''; _1.split(', ').eachWithIndex{i, index -> if(index==0){result+='.'+i+' = '+i+System.lineSeparator();} else{result+=_2+'.'+i+' = '+i+System.lineSeparator()}}; return result;", clipboard(), a);

效果(需要先复制)




一些模板
AbbreviationDescriptionTemplate text功能
lclist comprehension[i for i in $END$]列表推导式
scSet comprehension{i for i in $END$}集合推导式
dcDict comprehension{i: i for i in $END$}字典推导式
dc1Dict comprehension1{k: v for k, v in $END$.items()}字典推导式1
pdirshow documentationimport pdir
print(pdir($END$))
快速显示文档
#!Specify the Python interpreter#!/usr/bin/env python指定Python解释器
u8Specify the Python coding#-*- coding: utf-8 -*-指定Python编码
todoTODO# TODO: $END$待办
fixmeFIXME# FIXME: $END$需要修复
seSet instance variableself.$var$ = $var$
$END$
设置参数
prPrint formatted stringprint(’{}’.format($args$))打印格式化字符串




TODO




参考文献
  1. Live templates | PyCharm
  2. Live template variables - Help | PyCharm
  3. TODO comments | PyCharm
  4. PycharmTemplateOdoo GitHub
  5. favorinfo/templates GitHub
  6. pycharm_live_templates_sqlalchemy GitHub
  7. PyCharm-Django GitHub
  8. how to use camelCase in IDEA live templates
  9. how to run some script to analyze selected text and insert result in editor?
  10. IDEA自定义类注释和方法注释(自定义groovyscript方法实现多行参数注释)
  11. Groovy_w3cschool
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号