($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
便捷切换:探索快速切换窗口的技巧与最佳实践-软件玩家 - 软件改变生活!
优化窗口切换体验:关键字驱动的快捷操作解析
引言:为何窗口切换成为现代生产力工具的重要一环
在高效的工作环境中,精准而迅速的窗口切换不仅能提升生产效率,还能改善用户体验。无论是开发者、设计师,还是内容创作者,都依赖快捷键实现不同应用或任务窗口的快速切换。掌握相关技巧,能够帮助你在多任务处理时保持节奏,减少操作的中断感,从而在激烈的办公节奏中保持优势。这里将探讨各种窗口切换快捷键的设置、优化建议,以及针对不同操作系统和软件环境的个性化方案。
基础快捷键:操作系统级的窗口切换秘籍
在不同的操作系统中,预设的窗口切换快捷键各具特色:
| 操作系统 |
快捷键 |
功能说明 |
| Windows |
Alt + Tab |
切换到最近使用的窗口。一按即切换,连续按可以切换多窗口,松开即停留在当前窗口。 |
| Windows |
Win + Tab |
开启任务视图,预览所有虚拟桌面和窗口,支持多任务组织。 |
| macOS |
Command + Tab |
快速切换到最近使用的应用程序,保持按住再点击可展开更多,选择窗口。 |
| macOS |
Control + Arrow keys |
在虚拟桌面(Space)之间切换,支持多屏幕操作。 |
深入实现:自定义快捷键提升窗口切换效率
基本快捷键虽便捷,但多数场景下,用户追求更个性化、更高效的操作方案。这时可以考虑自定义快捷键,利用系统或第三方工具实现差异化管理:
- Windows:利用 PowerToys 的“Keyboard Manager”功能,重定义窗口切换快捷键。
- macOS:结合 Automator 或快捷指令,设置特定的窗口切换动作,然后赋予自定义快捷键。
- 第三方软件:如【AutoHotkey】(Windows)或【BetterTouchTool】(macOS)均提供极高自由度的脚本编写能力,可实现复杂场景的窗口调度和切换逻辑。
通过自定义组合,可以实现如“按下 Ctrl + ~”切换到特定应用窗口,或“Shift + 数字键”跳转到预设的虚拟桌面等功能,极大增强工作流程的连贯性。
高阶技巧:结合关键词实现智能窗口切换
关键词的概念在搜索和任务管理中尤为关键。将关键词与快捷键结合,可以实现智能化的窗口调度策略:
- 利用多标签管理工具,如【Wox】或【Albert】进行关键词搜索,一键切换相关窗口。
- 脚本化整合系统搜索与窗口管理,实现“输入‘设计’即可激活所有设计相关的窗口”。
- 借助第三方插件,将关键词管理与快捷键绑定,确保在多任务切换中信息快速定位。
此类方法强调关联性与智能化,适合需要在大量窗口之间频繁切换,且窗口名称或内容具有明显关键词的用户。让关键词成为“暗语”,在不经意间推动工作效率的飞跃。
多屏与虚拟桌面:提升多任务处理的窗口切换策略
在多屏幕环境或虚拟桌面中,窗口管理变得更加复杂。掌握特定快捷键和布局方式,可以大幅优化多屏操作体验:
- 多屏操作:在Windows中,Win + P快速切换投影模式,在多屏环境中快速调整显示设置。
- 虚拟桌面:macOS与Windows都支持虚拟桌面,借助快捷键如Win + Ctrl + Left/Right,允许快速在不同虚拟桌面迁移,保持任务的条理性。
布局策略:合理安排每个虚拟桌面对应不同类型任务,比如“设计”、“编程”、“邮件”,通过快捷键快速切换,减少切换时的认知负荷。
手势与虚拟助手:未来窗口切换的新趋势
除了传统快捷键外,手势操作和语音助手正逐渐融入桌面环境。如:
- 触控板手势:如在macOS和Windows触控板上自定义多指手势,通过快捷操作唤出应用或切换窗口。
- 语音命令:利用智能助手(如Cortana、Siri、Google Assistant),通过语音指令实现窗口切换:“切换到我的浏览器窗口”。
这种交互百变,兼容性强,逐渐成为未来多任务管理的重要趋势。用户可能会在不经意间,自然完成多任务转移,无需繁琐的快捷键操作。
全面提升:让窗口切换成为你的第二天性
本文标签:
切换快捷键虚拟实现桌面
发表评论